Yanıtlar:
Komut dosyasının nasıl kaydedileceği Mac OS X'te nasıl çalışacağı üzerinde büyük bir etkiye sahiptir. Komut dosyanızın sadece bir komut dosyası olarak kaydedildiği ve komut dosyasını her açtığınızda komut dosyası düzenleyicisinin açılmasına neden olan şey budur.
Sorunu çözmek için, komut dosyasını AppleScript düzenleyicisinde açın ve bir uygulama olarak kaydedin. Bu hile için gerekir.
Adımlar (editörde)
Dosya> Farklı Kaydet> ardından Dosya Biçimini uygulamaya ayarlayın ve kaydedin.
Komut dosyasını kaydederken, Dosya Biçimi açılır menüsünden "Uygulama" yı seçebilirsiniz; o zaman onu çalıştırabileceksiniz ve hala komut dosyasını açmak için Komut Dosyası Düzenleyicisi'ne sürükleyebileceksiniz; veya düzenlenebilir sürümü kaydetmemesi için Yalnızca Çalıştır'ı seçebilirsiniz.
Alternatif olarak, osascript
Terminal'deki komutu osascript /path/to/script
veya olarak kullanabilirsiniz osascript -e "a short script here"
.
Komut dosyasını ~ / Library / Scripts / Finder / klasörünüze yerleştirebilir ve doğrudan Komut Dosyası menüsünden çalıştırabilirsiniz.
Başka bir yol da, Automator'da osascript
Finder'da bir .scpt çalıştırmak için komut kullanan bir Hizmet oluşturmaktır .
(Ben Automator İngilizce kullanmıyorum, bu yüzden ifade doğru olmayabilir)
AppleScript'i Çalıştır kutusuna aşağıdaki kodu girin:
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
Dosya> Kaydet ve "AppleScript'i Çalıştır" gibi bir ad verin
Şimdi Finder'da bir .scpt dosyasını sağ tıklayıp "AppleScript'i Çalıştır" ı seçip komut dosyanızın yürütülmesini görebilirsiniz.
Referans: Alt rutinin kaynağı - AppleScript: Temel Alt Rutinler
osascript
ve Finder'da birden fazla .scpt dosyası seçildiyse işlenecek şekilde kodlanmamıştır. 2. Aşağıdaki tek kod satırı, AppleScript'i Çalıştır eylemine eklediğiniz her şeyin yerini aldığında, bu tür kodlama donanımlarından geçmeye kesinlikle gerek yoktur. do shell script "osascript " & quoted form of POSIX path of item 1 of input
Mevcut AppleScript kodunuzdaki her şeyi değiştirmek için minimal bir örnek: paste.ee/p/XngKA
if
ifade bloğu else
, seçilen dosyanın bir .scpt dosyası olmadığını belirten bir ileti görüntüleyen bir cümle ile genişletilebilir . Bu şekilde kullanıcı, hizmet çalıştırıldığında yanlışlıkla yanlış dosya türünü seçtiklerini görmediyse neden hiçbir şey olmadıklarını merak etmeyecektir.