Bitte um Hilfestellung für sehr einfachen Automator Code

pauleckstein

pauleckstein

Aktives Mitglied
Thread Starter
Dabei seit
14.11.2011
Beiträge
925
Reaktionspunkte
139
Ich habe es einfach nicht mit Coding, so dass ich meistens nach Trial and Error vorgehen

Folgende Service Extension (via exiftool) dient dazu, sämtliche Meta Daten aus einer Bilddatei zu löschen.
Code:
for img in "$@"; do
filename=${img%.*}
/usr/local/bin/exiftool -all= -overwrite_original "$filename.*"
done

Erhalte jedoch einen Ausführfehler. Das Problem liegt an dem Ausgabeterm "$filename.*". Wie kann ich diesen ausdrücken, dass er alle gängigen Bildformate einschließt? Nehme ich etwa "$filename.jpg", funktioniert dieser zwar, aber nur für jpg Dateien, nicht für png. Nehme ich "$filename.png", funktioniert dieser nur für png, und so weiter..

Jede Hilfestellung ist Willkommen. Danke!

EDIT:

Ha, habs hinbekommen, es muss "$@" lauten, somit:
Code:
for img in "$@"; do
filename=${img%.*}
/usr/local/bin/exiftool -all= -overwrite_original "$@"
done

Sweet!
 
Zuletzt bearbeitet von einem Moderator:
Nur $filename, das enthält ja schon das . was auch immer.
 
Nur $filename, das enthält ja schon das . was auch immer.
$filename alleine funktioniert nicht. habs eben aber mit $@ hinbekommen. Keine Ahnung auf was genau diese Deklaration hinweist (ich vermute auf die ganze Datei), aber es funktioniert :')
 
habs eben hinbekommen mit $@. Keine Ahnung auf was genau diese Deklaration hinweist (ich vermute auf die ganze Datei), aber es funktioniert xD

Das dürfte der Übergabewert sein, da könnten aber mehr als eine Datei drin sein.
 
Lern doch lieber vernünftig Programmieren.
 
Lern doch lieber vernünftig Programmieren.

Bei dem extrem sporadischen Erstellen von Skripten, würde ich das (tiefere) Wissen wieder schnell vergessen/verlernen. Daher schade um die investierte Zeit
 
Zuletzt bearbeitet:
Bei dem extrem sporadischen Erstellen von Skripten, würde ich das Wissen wieder schnell vergessen/verlernen. Daher schade um die investierte Zeit

Das ist relativ, je mehr man programmiert / scripted um so öfter schreibt man sich kleine Helferlein die am Ende jede Menge Zeit für stupide Arbeiten sparen.
 
Das ist relativ, je mehr man programmiert / scripted um so öfter schreibt man sich kleine Helferlein die am Ende jede Menge Zeit für stupide Arbeiten sparen.

Ja sicher, Skripte sind einfach super, aber ich habe da meine 5 Skripte, die ich seit Jahren nutzen, und das wars. Da lohnt sich kein vertiefter Programmierlehrgang
 
ach was :)

Ich scripte sporadisch (früher wesentlich mehr) und lerne ständig neue Tricks dazu. Inklusive Einbeziehung des Terminals.

Aktuell mit geladener kext und eingebetteten Unix Tool.

Und wage mich inzwischen auch an Shell Skripte. Meine Apple Scripte bestehen inzwischen mehr aus do shell script wie allem anderen und werden mehr oder weniger für die GUI benutzt.

Beispiel: https://www.macuser.de/threads/opencore-fuer-cmp-4-1-5-1.845703/post-11062465

Man wächst damit und wenn's dann läuft ists auch nicht allzu schlecht für's Gemüt.
 
$@ ist an der Stelle auf jeden Fall falsch. $filename ist korrekt. Schließlich iterierst du ja in einer Schleife über alle Elemente in $@
 
ach was :)

Ich scripte sporadisch (früher wesentlich mehr) und lerne ständig neue Tricks dazu. Inklusive Einbeziehung des Terminals.

Aktuell mit geladener kext und eingebetteten Unix Tool.

Und wage mich inzwischen auch an Shell Skripte. Meine Apple Scripte bestehen inzwischen mehr aus do shell script wie allem anderen und werden mehr oder weniger für die GUI benutzt.

Beispiel: https://www.macuser.de/threads/opencore-fuer-cmp-4-1-5-1.845703/post-11062465

Man wächst damit und wenn's dann läuft ists auch nicht allzu schlecht für's Gemüt.

Ja, Terminal nutze ich auch ausgiebig inkl. Homebrew, einfach schnell und effizient.
 
$@ ist an der Stelle auf jeden Fall falsch. $filename ist korrekt. Schließlich iterierst du ja in einer Schleife über alle Elemente in $@

Und dennoch gibt es einen Fehler bei der Nutzung von $filename. Ich vermute, dass filename noch die Dateiendung braucht, $@ schließt diese mit ein.
 
Zurück
Oben Unten