Wie Programm-Ausgabe prüfen und wenn o.k. RC 0 senden?

Bozol

Bozol

Aktives Mitglied
Thread Starter
Dabei seit
16.07.2003
Beiträge
3.478
Reaktionspunkte
2.181
Hallo,

ich würde gerne per Shell-Script in Hazel meine Videos anhand Width, Height oder Aspect Ratio im Finder farblich kennzeichnen.

Um die entsprechenden Werte zu erhalten möchte ich Mediainfo verwenden.

Beim Versuch das per Shell zu machen klappt es, ich rufe Mediainfo mittels
Code:
mediainfo "--Inform=Video;%Width%" Film.mkv
auf und bekomme dann den gewünschten Wert angezeigt.

Aber wie kann ich das Ergebnis mit einer Vorgabe gegen prüfen und weiter verwenden?

Laienhaft dachte ich etwa so:
Code:
Programmaufruf mediainfo "--Inform=Video;%Width%" $1
($1 verwendet Hazel für das aktuelle File)

Ergebnis

if Ergebnis = das gleiche wie meine Vorgabe, z.b. 720

then send RC 0

else

Hier noch ein Versuch, direkt in Hazel, der natürlich auch in die Hose ging: :eek:
Screenshot 2012-03-06 um 20.28.10.JPG

Könnte man das umsetzen? Und wenn ja: wie? Ich hab gestern schon stundenlang das WWW durchforstet in der Hoffnung was Ähnliches zu finden...

Danke schön für jede Hilfe,

Fred
 
Es müsste so gehen:
WIDTH=$(mediainfo .......)

Wenn du einer Variablen einen Wert zuweist kommt kein $ vor den Variablennamen, den Output eines Commands bekommst du mit $(command)

Und einen Rückgabewert kann man mit exit zurückgeben, zB exit 0
 
  • Gefällt mir
Reaktionen: magheinz
So, hier noch ein kurzes Feedback.

Es geht nicht, Mr. Noodle meinte dazu:
There's no good way to transmit that stuff from a shell script back to Hazel. You can with AppleScript since it allows returning of rich types.
Dann werd ichs mal versuchen. Mal schauen wie weit ich komme. :eek:
 
Das ist ja nicht der Teil des Skriptes, auf den sich die Aussage bezieht.
 
Mal ein echo $WIDTH danach probiert, um zu sehen, was in der Variable steht ?
In der Variable steht der gewünschte Wert.

Mal ein anderer Gedankengang:
Könnte man die Dateilabel auch per Terminal färben? Ich habe im Netz gelesen dass das früher mit Hausmitteln nicht möglich gewesen sein soll, es aber mittels OSXUtils geklappt hat. Auf Grund des PPC-Codes sind diese aber nicht mehr Lion kompatibel.
Ich dachte man könnte, wenn das färben der Label per Terminal klappt, das Script vielleicht doch in Hazel einbinden in dem man das Script, wenn der Wert nicht mit der Vorgabe übereinstimmt sich selbst beenden lässt.

Wert in der Variable stimmt -> Label per Terminal (um)färben
Wert in der Variable stimmt nicht - Script beendet sich oder sendet anderen RC -> Hazel macht mit dem nächsten File in der Warteschlange weiter.

Man könnte innerhalb einer Hazel-Regel erst die Dateien per Script prüfen und danach mit einem zweiten Script abarbeiten.

Hazel.jpg

Wäre das vorstellbar?
 
Zuletzt bearbeitet:
Ja woran scheitert es denn nun?
Du hast die Ausgabe von Mediainfo in einer Variable - evtl. kannst du den genauen Zahl die du aus der ganzen Ausgabe benötigst noch mit cut o.ä. herausfiltern und dann mit if vergleichen. Danach wird mit exit 0 (oder 1 oder 2 oder was weiss ich) der Returncode zurückgegeben.
 
Du solltest dich mal damit beschäftigen, wie man das mit AppleScript macht (ich mache zurzeit wenig in AS, deswegen weiß ich es nicht auswändig).
Was in AppleScript geht, geht in den meisten Fällen dann auch per Shellscript und osascript.
 
Bitte nochmals meinen Beitrag lesen, ich hab da Einiges noch geändert, ihr wart zu schnell beim antworten. :eek:
 
Ja, mit osascript sollte das schon machbar sein.

Ich würde aber auch probieren, die Applescript Kommandos mit osascript in ein Shellscript einzubinden.
Du muss halt mal konkret was probieren und dann hier posten, wie weit Du kommst.
 
Andere Alternative:
In Automator habe ich ein Programm rot.app erstellt - Inhalt einfach nur "Dateien & Ordner" - "Finder-Objekte Etiketten zuordnen" und dort rot aktiviert

Im Shellscript kannst du dann die Executable innerhalb der App aufrufen - in meinem Fall "rot.app/Contents/MacOS/Application Stub" und als Parameter gibst den Namen der rot zu färbenden Datei mit. :)
 
Danke für die Tipps.

Ich werde selbst etwas herumtüfteln und schauen wie weit ich komme. Komme allerdings meist erst am WE dazu, unter der Woche hat die Familie Abends Vorrang. :)
 
Zurück
Oben Unten