Antworten:
Wählen Sie diese Option, um in Automator einen Dienst zu erstellen , der ausgewählte Dateien und Ordner nur als Eingabe in Finder empfängt . Fügen Sie die Aktion " Shell-Skript ausführen" hinzu und übergeben Sie die Eingabe als Argumente .
Die Argumente, die Sie erhalten, sind die vollständigen Unix-Pfade der ausgewählten Dateien und Ordner. Verwenden eines growlnotify
Teils von Growl zu Demonstrationszwecken:
Growl-Nachricht als Ergebnis der Ausführung in einer Datei:
Der Befehl wird im Kontextmenü einer Datei oder eines Ordners im Finder angezeigt. Wenn zu viele zutreffende Dienste vorhanden sind , werden sie in einem Untermenü Dienste gruppiert .
Wenn für Ihr Skript sowohl der vollständige Dateipfad als auch der Dateiname erforderlich sind , können Sie wie folgt vorgehen, indem Sie zuerst den Dateinamen aus dem vollständigen Pfad extrahieren:
for f in "$@"
do
name="$( basename $f )"
/usr/local/bin/growlnotify "$name" -m "$f"
done
Sie können sehen, dass der Dateiname als Titel verwendet wird, während der Pfad in Growl als Meldung verwendet wird:
Wenn Sie zusätzliche Eingaben abfragen müssen, können Sie dazu ein kurzes AppleScript ausführen. Das Folgende ist ein vollständiges Shell-Skript (wie das growlnotify
oben beschriebene), das Eingaben abfragt und die ausgewählte Datei in diesen neuen Namen umbenennt. Ich habe die Fehlerbehandlung nicht berücksichtigt. Wenn Sie beispielsweise Doppelpunkte und Schrägstriche zum neuen Dateinamen hinzufügen, wird das Skript wahrscheinlich beschädigt.
# repeat for every file in selection
for f in "$@"
do
# capture input of a simple dialog in AppleScript
OUT=$( osascript -e "tell application \"System Events\" to text returned of (display dialog \"New Name of $f:\" default answer \"\")" )
# if the user canceled, skip to the next file
[[ $? -eq 0 ]] || continue
# old file name is the loop variable
OLD="$f"
# new file name is the same directory, plus the user's input
NEW="$( dirname "$OLD" )/$OUT"
# print a message announcing the rename
/usr/local/bin/growlnotify "Renaming…" -m "$OLD to $NEW"
# perform the actual rename
mv "$OLD" "$NEW"
done
Screenshot einer Beispielaktion zum Umbenennen, die angekündigt wurde über growlnotify
:
~/Library/Services
, und Sie können jederzeit Command+Click
den Namen eines Dokuments (in diesem Fall den Dienst in Automator) eingeben , um den vollständigen Pfad in einem Popup-Menü anzuzeigen.