Próbuję napisać przepływ pracy, który użyje powłoki do zastosowania SHA256 do komórek w arkuszu kalkulacyjnym Excel.
Przepływ pracy (który może być trochę włamaniem) działa, ale tylko wtedy, gdy kliknę go za pomocą „Step” - jeśli spróbuję go uruchomić lub zapętlić, wynikiem nie jest skrót mieszania SHA256, ale oryginalne wejście.
Jakieś pomysły? Ponieważ wydaje się to naprawdę dziwne.
EDYCJA: Dzięki @Graham Miln w końcu udało mi się pracować w samym AppleScript bez Automatora.
macos
command-line
ms-office
automator
hyperflux7
źródło
źródło
Odpowiedzi:
Opisane zachowanie sugeruje problem z czasem. Jeden lub więcej kroków nie jest wykonywanych przed rozpoczęciem następnego kroku.
Rozważ połączenie wszystkich kroków w jeden AppleScript. Możesz użyć polecenia do shell script w AppleScript, aby wywołać
shasum
:Schowek jest dostępny przez AppleScript :
Jako pojedynczy AppleScript możesz debugować za pomocą Aplikacje> Narzędzia> Edytor skryptów i uzyskać lepszy wgląd w to, co dzieje się podczas działania skryptu.
źródło
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)
Ale coś jest nie tak ze sposobem, w jaki wartość jest przekazywana do skryptu Shell, ponieważ wyjściowa wartość schowka nie jest właściwym hashem ... (jest to jednak skrót)| pbcopy
Rury nie jest konieczne. skrypt do shell przekazuje wynikshasum
domyHash
. Użyj czegoś takiego jakset the clipboard to myHash
po utworzeniu skrótu.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)
a to nie powoduje wygenerowania skrótu SHA256 równego 1. Jeśli usunęshasum -a 256
z linii Shell, wynik jest-n '1'
sugerujący problem z tym, jak wartość jest przekazywana do skryptu Shell?1
, i skrót, którego oczekujesz. Ułatwi to udzielenie odpowiedzi i może zachęcić innych do pomocy.