Automator und Shellscript: Problem mit Dateinamen

K

Knuty

Registriert
Thread Starter
Dabei seit
25.07.2007
Beiträge
4
Reaktionspunkte
0
Hi!

will folgendes machen: ich habe ein Verzeichnis mit Dateien. Diese Dateien sollen in ein neues Verzeichnis kopiert werden unter einem neuen Namen: Erzeugungsdatum der Originaldatei: yyyymmdd_hhmmss

Für diese Aufgabe habe ich mir ein kleines ShellScript geschrieben, das mittels "stat"-Kommando diese Aktion ausführt. Das habe ich in den Automator als Shell-Skript eingefügt. Zuvor die Aktion "Gefundene Finder Objekte benutzen".

Nachdem das nicht funktioniert hat, habe ich das ganze vereinfacht:
1. Finder Objekte benutzen
2. Script: for f in $@; do echo $f; done (das ist die Vorgabe bei dieser Aktion)
3. Ausgabe

Nun sehe ich, dass als Dateiname: ("datei.txt") übergeben wird. Ich komme an den Dateinamen einfach nicht ran.

Wie muss man damit richtig umgehen?

Gruß
Knut
 
Automator BASH-Skript ; Problem gelöst

Habe das Problem nun fast gelöst und doch ein paar Sachen gelernt, die ich hier auch gleich weitergeben will:

1. Die Ausgabe beim Automator erscheint wohl immer als Liste:
echo Eins
echo Zwei
echo Drei
Ergibt in der "Ergebnisse Anzeigen"-Aktion: ("Eins", "Zwei", "Drei")

2. Aufrufe von externen Skripten vermeiden - das ist unschön dokumentiert. In meinem Fall wurden Verzeichnisse übergeben:

for m in $@; do
# find $m -name "*.MOD" -exec renameSkript {} \; ## schlecht - besser:
FINDFILES=`find $m -name "*.MOD"`
for thisFile in $FINDFILES; do
RENAMETO=`stat -t "%Y%m%d_%H%M%S" -f "%Sm" $thisFile`
mv $thisFile `basedir $thisFile`/RENAMETO.mpg
done
done

(Nagelt mich nicht auf die STAT-Parameter fest (habe es aus dem Kopf geschrieben- kann man ja in den man-pages nachlesen).

3. Wer das ganze mit Parametern in einer GUI haben will, der kann das Script als XCode-Skript-Action entwickeln. Steht auf den Developer-Seiten von apple ausreichen beschrieben wie das geht (googeln nach "Automator Script XCode").

4. Vorsicht beim Copy&Paste in die Text-Felder der Automator-Script-Action. Offenbar kann man da Sonderzeichen, die man nicht sieht mit kopieren. Ich habe recht lange gesucht, bis ich den "gleichen" Text nochmal selber getippt hatte und es plötzlich ging.

5. Debuggen kann man das, indem man sich ECHO Befehle einbaut und dann die Ergebnis-Ausgabe als Automator-Aktion anhängt.

6. Vorher kann man das als Script im Terminal ausprobieren, damit kann man dann schonmal "sicher" ;) sein, dass man das ganze ansich richtig gemacht hat.

Viel erfolg...

Knut
 
Zurück
Oben Unten