Saya mencoba menulis alur kerja yang akan menggunakan Shell untuk menerapkan SHA256 ke sel dalam lembar bentang Excel.
Alur kerja (yang mungkin sedikit peretasan) berfungsi, tetapi hanya ketika saya mengkliknya menggunakan "Langkah" - jika saya mencoba Menjalankan atau Melingkarnya, hasilnya bukan hash SHA256 tetapi input asli.
Ada ide? Karena ini terlihat sangat aneh.
Suntingan: Terima kasih kepada @Graham Miln, saya akhirnya dapat mengerjakan ini di AppleScript sendiri tanpa Automator.
macos
command-line
ms-office
automator
hyperflux7
sumber
sumber
Jawaban:
Perilaku yang Anda uraikan menunjukkan masalah waktu. Satu atau beberapa langkah tidak selesai sebelum langkah berikutnya dimulai.
Pertimbangkan untuk menggabungkan semua langkah menjadi satu AppleScript. Anda dapat menggunakan perintah skrip do shell di AppleScript untuk memanggil
shasum
:The clipboard diakses oleh AppleScript :
Sebagai AppleScript tunggal, Anda dapat men-debug menggunakan Applications> Utilities> Script Editor dan mendapatkan wawasan yang lebih baik tentang apa yang terjadi saat skrip dijalankan.
sumber
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)
Tapi ada sesuatu yang salah dengan cara nilai sedang dilewatkan ke script Shell karena nilai output clipboard bukan hash yang tepat ... (itu adalah sebuah hash, meskipun)| pbcopy
pipa tidak diperlukan. shell script melewatkan hasil darishasum
kemyHash
. Gunakan sesuatu sepertiset the clipboard to myHash
setelah membuat hash.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)
dan ini tidak menghasilkan hash SHA256 dari 1. Jika saya menghapusshasum -a 256
dari garis Shell, hasilnya adalah-n '1'
, menyarankan masalah dengan bagaimana nilai diteruskan ke skrip Shell?1
, dan hash yang Anda harapkan. Ini akan membuatnya lebih mudah untuk dijawab dan dapat menarik orang lain untuk juga membantu.