Jalankan applescript tanpa membuka editor

12

Setiap kali saya ingin menjalankan applescript, editor akan muncul.

Apakah ada cara untuk menjalankannya secara langsung?

OscarRyz
sumber

Jawaban:

19

Bagaimana skrip disimpan memiliki efek besar pada bagaimana skrip itu akan beroperasi di Mac OS X. Sepertinya skrip Anda baru saja disimpan sebagai skrip dan itulah yang menyebabkan editor skrip terbuka setiap kali Anda membuka skrip.

Untuk mengatasi masalah, buka skrip di editor AppleScript dan simpan sebagai aplikasi. Itu seharusnya trik.

Langkah-langkahnya adalah (di editor)

File> Save As> kemudian atur Format File ke aplikasi kemudian simpan.

teks tautan

Bruce McLeod
sumber
Sekarang diminta: "Tekan jalankan untuk menjalankan atau berhenti untuk berhenti" ... tapi saya kira itu kesalahan skrip! Terima kasih
OscarRyz
1
Memeriksa kotak centang jalankan mungkin menghentikan permintaan agar tidak muncul.
Bruce McLeod
Pemahaman saya adalah bahwa kotak centang Jalankan Saja tidak memungkinkan pengeditan skrip nanti.
jtbandes
@jtbandes ahhhh ... itu masuk akal
Bruce McLeod
2
Harap dicatat bahwa di Yosemite, metode saat ini adalah menggunakan File -> Ekspor. Tidak ada lagi dialog Save As dalam versi terbaru dari editor AppleScript.
anon58192932
7

Saat menyimpan skrip, Anda dapat memilih "Aplikasi" dari dropdown Format File; maka Anda akan dapat menjalankannya, dan Anda masih dapat menyeretnya ke Editor Skrip untuk membuka skrip; atau Anda dapat memilih Jalankan Saja sehingga tidak akan menyimpan versi yang dapat diedit.

Atau, Anda dapat menggunakan osascriptperintah di Terminal, baik sebagai osascript /path/to/scriptatau osascript -e "a short script here".

jtbandes
sumber
1

Anda juga dapat menempatkan skrip di folder ~ / Library / Scripts / Finder / dan menjalankannya langsung dari menu Script.


sumber
1

Di bawah macOS High Sierra 10.13 tidak ada File / Simpan sebagai.

Anda harus menggunakan File / Ekspor / Format File: Aplikasi Ekspor File Format File

Jay Walker
sumber
0

Cara lain adalah dengan membuat Layanan di Automator yang menggunakan osascriptperintah untuk menjalankan .scpt di Finder.

(Saya tidak menggunakan Automator dalam bahasa Inggris sehingga kata-katanya mungkin tidak akurat)

  1. Luncurkan Automator
  2. File> Baru, dan pilih Layanan
  3. Dalam "Layanan Terima:" pilih "File atau Folder"
  4. Di "Lokasi:" pilih "Finder.app"
  5. Cari "Jalankan AppleScript" dan seret item ke sisi kanan
  6. Di kotak Jalankan AppleScript, masukkan kode berikut:

    on run {input, parameters}
        tell application "Finder"
            --get the selected file
            set selectedItem to (item 1 of (get selection))
    
            --get location info (folder:file format)
            set fileLocation to (selectedItem as alias) as string
    
            --replace : with / with subroutine
            set the semifinal to my replace_chars(fileLocation, ":", "/")
    
            --remove Macintosh HD with subroutine
            set the theFinal to my replace_chars(semifinal, "Macintosh HD", "")
        end tell
        do shell script "osascript " & "\"" & theFinal & "\""
        return input
    end run
    
    on replace_chars(this_text, search_string, replacement_string)
        set AppleScript's text item delimiters to the search_string
        set the item_list to every text item of this_text
        set AppleScript's text item delimiters to the replacement_string
        set this_text to the item_list as string
        set AppleScript's text item delimiters to ""
        return this_text
    end replace_chars
    
  7. File> Simpan, dan beri nama seperti "Jalankan AppleScript"

  8. Sekarang Anda dapat mengklik kanan file .scpt di Finder dan pilih "Run AppleScript" dan lihat skrip Anda dieksekusi.

Referensi: Sumber subroutine - AppleScript: Essential Sub-Routines

Jack Wu
sumber
Saya melihat masalah dengan kode AppleScript Anda. 1. Anda tidak memiliki penanganan kesalahan atau kode untuk memvalidasi apa yang dipilih adalah file .scpt sebelum diteruskan ke osascriptdan belum kode untuk menangani jika lebih dari satu file .scpt dipilih di Finder. 2. Sama sekali tidak perlu melalui rigmarole pengkodean seperti itu ketika baris kode berikut menggantikan semua yang Anda tambahkan ke tindakan Run AppleScript. do shell script "osascript " & quoted form of POSIX path of item 1 of inputBerikut adalah contoh minimal untuk mengganti semuanya dalam kode AppleScript Anda saat ini: paste.ee/p/XngKA
user3439894
Dalam contoh minimal, ifblok pernyataan dapat diperluas dengan elseklausa yang menampilkan pesan bahwa file yang dipilih bukan file .scpt. Dengan begitu pengguna tidak bertanya-tanya mengapa tidak ada yang terjadi jika mereka tidak melihat mereka secara tidak sengaja memilih jenis file yang salah ketika layanan dijalankan.
user3439894