Der Automator-Workflow funktioniert nur, wenn auf „Schritt“ geklickt wird.

Ich versuche, einen Workflow zu schreiben, der Shell verwendet, um SHA256 auf Zellen in einer Excel-Tabelle anzuwenden.

Der Workflow (der vielleicht ein bisschen hackt) funktioniert, aber nur, wenn ich ihn mit "Step" durchklicke - wenn ich versuche, ihn auszuführen oder zu wiederholen, ist die Ausgabe nicht der SHA256-Hash, sondern die ursprüngliche Eingabe.

Irgendwelche Ideen? Da dies wirklich seltsam erscheint.

BEARBEITEN: Dank @Graham Miln habe ich das schließlich in AppleScript allein ohne Automator zum Laufen gebracht.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Kannst du bitte deine Screenshots reparieren? Die Verknüpfung mit Dropbox funktioniert nicht, es ist besser, sie direkt in AD hochzuladen (was Sie über den Dialog "Bild hinzufügen" tun können).

Antworten (1)

Das von Ihnen beschriebene Verhalten deutet auf ein Timing-Problem hin. Mindestens ein Schritt wird nicht abgeschlossen, bevor der nächste Schritt beginnt.

Erwägen Sie, alle Schritte in einem einzigen AppleScript zusammenzufassen. Sie können den Shell-Skriptbefehl do in AppleScript verwenden , um Folgendes aufzurufen shasum:

-- Get value to hash from clipboard
set myValue to the clipboard

-- Build the command to execute
set hashCommand to "echo -n " & quoted form of (myValue) & " | shasum -a 256"

-- Debug check the command; comment out when it looks good
display dialog hashCommand

-- Execute command and place on clipboard
set myHash to do shell script hashCommand
set the clipboard to myHash

Auf die Zwischenablage kann über AppleScript zugegriffen werden :

display dialog (the clipboard)

Als einzelnes AppleScript können Sie mit Anwendungen > Dienstprogramme > Skript-Editor debuggen und erhalten einen viel besseren Einblick in das, was passiert, während das Skript ausgeführt wird.

Das ist wirklich hilfreich, danke. Ich habe es jetzt auf das viel einfachere Aussehen reduziert, display dialog (the clipboard) set myValue to (the clipboard) set myHash to do shell script "echo -n " & quoted form of myValue & " | shasum -a 256 | pbcopy" display dialog (the clipboard)aber etwas stimmt nicht mit der Art und Weise, wie der Wert an das Shell-Skript übergeben wird, weil der Ausgabewert der Zwischenablage nicht der richtige Hash ist ... (es ist jedoch ein Hash)
Das | pbcopyRohr wird nicht benötigt. do Shell-Skript gibt das Ergebnis von shasuminto zurück myHash. Verwenden Sie so etwas wie set the clipboard to myHashnach dem Erstellen des Hashs.
Das AppleScript in der Antwort wurde um Kommentare und Interaktionen mit der Zwischenablage erweitert.
Ok, entschuldigen Sie, dass ich nicht viel AppleScript kenne, aber ich habe jetzt set myValue to "1" set myHash to do shell script "echo -n \"" & quoted form of (myValue) & "\" | shasum -a 256" set the clipboard to myHash display dialog (the clipboard)und dies erzeugt nicht den SHA256-Hash von 1. Wenn ich shasum -a 256aus der Shell-Zeile entferne, ist die Ausgabe -n '1', was auf ein Problem mit der Übergabe des Werts an das Shell-Skript hindeutet?
Bitte bearbeiten Sie Ihre Frage so, dass sie Ihr AppleScript, den Hash, den Sie erhalten 1, und den Hash, den Sie erwarten, enthält. Dies erleichtert die Beantwortung und kann andere dazu anregen, ebenfalls zu helfen.