2016-04-05 6 views
0

Ich mache einen Automator-Dienst, um eine Datei auszuwählen, und lade dann die ausgewählte Datei mit einem Shell-Skript hoch. Ich kann meine Variablen nicht zum Funktionieren bringen. Ich bin sehr neu in Automator und AppleScript und weiß nicht viel über sie, also könnten sie nur Anfängerfehler sein.Wie können Automator-Variablen in AppleScript eingebunden werden?

Wenn es einen besseren Weg gibt, lass es mich wissen!

Hier ist mein Applescript-Code:

on run {input01, input02, path} 
    set input01 to "scp -i /Users/jeffArries/Desktop/jeffarries.pem -rp /Users/jeffArries/Desktop/Website_Testing_Folder/" 
    set input02 to "[email protected]:/var/www/html" 
    do shell script "{input01} & {Path} & {input02}" 
end run 

Und ein Screenshot von Automator: enter image description here

Antwort

3

Sie brauchen nicht es auf deine Weise zu tun. Beim Erstellen eines Automator Service werden die Pfade der ausgewählten Objekte automatisch dem Service übergeben. Alles, was Sie tun müssen, ist "Dateien & Ordner" im Menü oben (in Ihrem Screenshot wählten Sie "keine Eingabe").

Danach müssen Sie keine Automator-Variablen verwenden, alle Pfade können als Liste innerhalb des input-Parameters gefunden werden.

Danach sollten Sie Ihren Shell-Befehl wie eine normale Zeichenfolge erstellen und über do shell script ausführen.

Versuchen Sie diese, um loszulegen, ich füllte sie mit hilfreichen Kommentare für Sie up:

on run {input, parameters} 

    -- setting your AppleScript variables 
    set input01 to "scp -i /Users/jeffArries/Desktop/jeffarries.pem -rp /Users/jeffArries/Desktop/Website_Testing_Folder/" 
    set input02 to "[email protected]:/var/www/html" 

    -- loop through selected finder items 
    repeat with aFinderItem in input 
     -- check if the aFinderItem is a file and not anything else 
     tell application "System Events" to set theItemIsAFile to ((get class of item (aFinderItem as text)) = file) 
     if theItemIsAFile then 
      -- store the POSIX path of the file 
      set theItemsPosixPath to POSIX path of aFinderItem 
      -- build the shell scp command 
      set myShellCommand to input01 & " " & quoted form of theItemsPosixPath & " " & input02 
      -- exceute the command 
      do shell script myShellCommand 
     end if 
    end repeat 
    return input 
end run 

Genießen, Michael/Hamburg

Verwandte Themen