Stapelöffnen von JPGs in der Vorschau

Ich habe bereits in den Foren nach einer Antwort auf das Problem gesucht, aber meistens steht es im Zusammenhang mit der Stapelkonvertierung von Dateien (mit unterschiedlichen Namen). Ich möchte nur eine Reihe von JPEG-Dateien in der Vorschau öffnen.

Ich nehme Bilder von bestimmten Gegenständen in meiner Werkstatt mit „Workflow“ für iOS auf. Das hat ein eigenes Skript, das die Dateien im Format 00000-0.JPG speichert, wobei die ersten fünf Nullen die Artikelnummer sind und die letzte Null die sequentielle Reihenfolge dieses bestimmten Artikels ist. zB 78934-4.JPG ist das 4. Foto von Artikel "78934". Die Anzahl der Bilder für einen bestimmten Artikel kann stark variieren.

Diese landen alle in einem Ordner (auf meinem Mac) mit mehreren tausend anderen Bildern, alle mit der gleichen Namenskonvention. Ich möchte den Prozess des Suchens und Öffnens dieser Bilder beschleunigen (ähnlich wie im Finder zu sein, eine Reihe von Bildern von Hand auszuwählen und auf die Reihe zu doppelklicken und sie in einer "Instanz" oder einem Vorschaufenster öffnen zu lassen - um das Vorhandensein zu minimieren um Fenster herumzuziehen) mit AppleScript.

Hier ist, was ich bisher geschrieben habe...

tell application "Finder" to set myFiles to folder "Macintosh SSD:Users:me:ownCloud:Bilder_neu:Einzelbilder"

set file_extention to ".JPG"

set articleNumber to display dialog "Please enter article number" default answer "" with icon note buttons {"Cancel", "Continue"} default button "Continue"

Ich bin mir nicht sicher, wie ich die "for-Schleife" verwalten soll, um die Bilder zu finden und dann zu öffnen.

Danke für jede gegebene Hilfe

Sie sagten "Die Anzahl der Bilder für einen bestimmten Artikel kann sehr unterschiedlich sein." Was ist also "viel"? Wenn Sie Ihre Beschreibung betrachten, wobei die ersten 5 Ziffern die Artikelnummer sind und die letzte Ziffer, die nach dem '-', als einzelne Ziffer angezeigt wird, können nur 10 Bilder einer bestimmten Artikelnummer vorhanden sein, 0-9 als letzte Ziffer. Ist die maximale Anzahl von 10 "viel"? Ist das Muster immer numerisch und beschränkt auf zB #####-#.JPG oder kann das Muster nach dem '-' mehrstellig sein und wenn ja, wie viele Stellen? Welche Version von OS X/macOS verwenden Sie außerdem?
In der Regel sind es mindestens zwei Bilder für jeden Artikel. Die Artikelnummer ist immer fünfstellig. Der Wert nach dem Bindestrich würde fast nie 9 überschreiten, also ja, in der Praxis würde #####-#.JPG in fast allen Fällen funktionieren. Könnte das Terminalergebnis von "ls #####-*" hier angewendet werden?
Ich habe meine Antwort für einen Anwendungsfall aktualisiert, wenn die Vorschau nicht der Standardhandler für Bilddateien ist.

Antworten (2)

Der folgende Beispiel- AppleScript- Code geht davon aus, dass die macOS- Standardeinstellung zum Öffnen von Bildern in der Vorschau immer noch aktiv ist.

set theImages to quoted form of POSIX path of ¬
    ((path to home folder as string) & "ownCloud:Bilder_neu:Einzelbilder")

set articleNumber to text returned of ¬
    (display dialog "Please enter article number:" default answer ¬
        "" with icon note buttons {"Cancel", "Continue"} default button "Continue")

do shell script "find " & theImages & " -type f -iname '" & articleNumber & "-*.JPG' -exec open {} +"

Wenn Vorschau nicht der Standardhandler für Bilddateien ist, ändern Sie den do shell script Befehl in:

do shell script "open -a Preview $(find " & theImages & " -type f -iname '" & articleNumber & "-*.JPG')"

Beachten Sie, dass " reines AppleScript" nicht erforderlich ist!


Hinweis: Der AppleScript- Beispielcode ist genau das und verwendet keine Fehlerbehandlung und soll nur eine von vielen Möglichkeiten zeigen, wie eine Aufgabe ausgeführt werden kann. Es liegt immer in der Verantwortung des Benutzers, eine geeignete Fehlerbehandlung nach Bedarf/Wunsch hinzuzufügen/zu verwenden .

Hey user3439894, habe das gerade ausprobiert. Es funktionierte perfekt. Danke, dass du mich aus diesem Loch gegraben hast!

Hier ist ein reines AppleScript-Mittel, um Ihr Ziel zu erreichen:

set ImagesFolder to "/Users/me/ownCloud/Bilder_neu/Einzelbilder"

set articleNumber to text returned of (display dialog ¬
    "Please enter article number" default answer ¬
    "" with icon note buttons {"Cancel", "Continue"} ¬
    default button "Continue")

tell application "System Events" to set JPGs to ¬
    path of every file in folder ImagesFolder whose ¬
    type identifier is "public.jpeg" and ¬
    name begins with (articleNumber & "-")

tell application "Preview" to open JPGs
Die erste Lösung scheint besser zu funktionieren. Es ist schneller (in meinem Fall) und gibt keine Berechtigungsfehlerwarnungen aus. Danke CJK für deine Hilfe, trotzdem.
Hey CJK, ich habe meine Antwort für einen Anwendungsfall aktualisiert, wenn Preview nicht der Standardhandler für Bilddateien ist, und auch darauf hingewiesen, dass reines AppleScript nicht erforderlich ist. :)
@ user3439894 Gute Arbeit mit open -a Preview $(find ...). Das ist vernünftiger. Obwohl reines AppleScript nicht erforderlich ist, ist es im Allgemeinen nicht wünschenswerter? Oder anders ausgedrückt, was hat Sie dazu gebracht, dieses Problem zu lösen, indem Sie Shell-Befehle verwenden, anstatt die Dateien über AppleScript abzurufen (was instinktiv meine erste Neigung war)?
Einige Benutzer ändern die Standardeinstellung nie, daher ist beides sinnvoll. - Ich muss sagen, dass ich 'Beachten Sie, dass "reines AppleScript" nicht erforderlich ist!' in meiner Antwort, nachdem Sie Ihre gepostet hatten, als eine Art Witz. :) Aber im Ernst, do shell script es ist ein AppleScript- Befehl und als solcher ist absolut nichts falsch daran, ihn über eine sogenannte reine AppleScript-Methode oder umgekehrt zu verwenden. Ich verzichte oft auf die Verwendung, do shell scriptweil ich das, was ich erreichen möchte, normalerweise schneller/einfacher und mit weniger Zeichen schreiben kann als mit sogenanntem reinem AppleScript.
Übrigens ... Sogenanntes reines AppleScript ist keine Art Abzeichen. (Abzeichen? Wir haben keine Abzeichen! Wir brauchen keine Abzeichen! Ich muss dir keine stinkenden Abzeichen zeigen!) :)
Ich denke, die Stimmung hinter meiner Notiz über reines AppleScript wurde falsch interpretiert. Ich habe keine Probleme, Bash-Code in AppleScript zu integrieren, und Sie haben gesehen, wie ich es in vielen anderen Skripten getan habe, die ich auf SE eingereicht habe. Ich habe meine Lösung einfach als "reines AppleScript" beschrieben, um ihre Methodik von Ihrer zu unterscheiden, aber nicht zu implizieren, dass eine besser als die andere ist. Obwohl ich, wie ich im obigen Kommentar festgestellt habe, visuell eine persönliche Vorliebe für reinen AppleScript-Code habe; aber funktional kann man mit bash Dinge erreichen, die man mit reinem AppleScript einfach nicht erreichen kann, und oft schneller.
Wenn Sie beginnen, indem Sie sagen: "Hier ist ein reines AppleScript-Mittel, um Ihr Ziel zu erreichen, und Vorschau nicht die Standardanwendung zum Öffnen von JPEG-Bildern sein muss:" und dann nichts anderes als Code, nachdem ich die Antwort gepostet habe, die ich getan habe, ja ich hätte es falsch interpretieren können, wenn ich mich dafür entschieden hätte, aber das habe ich wirklich nicht getan, ich habe nur versucht, etwas Spaß damit zu haben, im Ernst, das ist alles! :) Es gibt einige Benutzer, die sich wirklich über das Berappen lustig machen, und ich weiß, dass Sie keiner von ihnen sind! Abgesehen davon, weißt du, wie schwer es ist, dieses Filmzitat in ein Gespräch einzufügen!? :)
Etwas zu spät wurde mir klar, dass mein Kommentar zur Vorschau in der Art und Weise, wie ich ihn in Bezug auf Ihre Antwort formulierte, abfällig konnotiert war. Ich kann Ihnen sagen, dass ich das nicht absichtlich so gemeint habe, aber manchmal tippe ich, bevor ich meine Gedanken richtig verarbeitet habe. Wie auch immer, es macht alles viel Spaß und gutes Lernen. Ich gehe oft zu SE, wenn ich sehr müde bin, und in den frühen Morgenstunden.