AppleScript: Ordner selektieren und an Terminal übergeben

Ausgangspunkt:

In verschiedenen Ordnern liegen MP4 Files. Das AppleScript soll einen Dialog öffnen in dem man die Ordner auswählen kann, ist nur ein Ordner ausgewählt wird geprüft ob sich ein MP4 File in diesem Ordner befindet, wenn ja wird gewarnt dass nur ein Ordner ausgewählt wurde, ist kein MP4 File vorhanden wird darauf hingewiesen und ein neuer Dialog wird geöffnet.

Sind mehrere Ordner ausgewählt werden diese an den Terminal geschickt. Der Terminal führt ein Shell Script aus, welches im AppleScript Verzeichnis (*.app/Contents/Resources/Scripts/) liegt. Das Shell Script soll dann die Ordner weiterverarbeiten.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
set muxer to POSIX path of (path to resource "mxf-muxer" in directory "Scripts")
set foldercount to 0
 
tell application "Finder"
    set FolderPath to (choose folder with prompt "Pick the folders containing the files to process:" with multiple selections allowed)
    
    set foldercount to count FolderPath
    
    if (foldercount = 1) then
        set inPath to POSIX path of FolderPath as text
        set Foldername to name of folder FolderPath as text
        
        set infile to "no"
        tell application "Finder" to if exists inPath & Foldername & ".MP4" as POSIX file then set infile to "yes"
        
        if (infile = "no") then
            display dialog ("There is no file: \"" & inPath & Foldername & ".MP4" as text) & "\". Please select (multiple) folders which contains MP4 files!" buttons {"Cancel", "Select Folders"} default button "Select Folders"
            
            if button returned of result = "Select Folders" then
                set FolderPath to (choose folder with prompt "Pick the folders containing the files to process:" with multiple selections allowed)
            else
                return
            end if
        else
            display dialog "You have only select one folder, are you sure that you only want to process one file?" buttons {"Select Folders", "Continue"} default button "Continue"
            
            if button returned of result = "Select Folders" then
                set FolderPath to (choose folder with prompt "Pick the folders containing the files to process:" with multiple selections allowed)
            end if
        end if
    end if
    
    set filesString to ""
    repeat with file_ in FolderPath
        set filesString to filesString & " " & quoted form of (POSIX path of file_)
    end repeat
    
    tell application "Terminal"
        activate
        do script quoted form of muxer & filesString
    end tell
end tell

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.