답변:
스크립트가 저장되는 방식은 Mac OS X에서 작동하는 방식에 큰 영향을 미칩니다. 스크립트가 스크립트로 저장된 것처럼 들리므로 스크립트를 열 때마다 스크립트 편집기가 열립니다.
문제를 해결하려면 AppleScript 편집기에서 스크립트를 열고 응용 프로그램으로 저장하십시오. 그 트릭해야합니다.
단계는 (편집기에서)
파일> 다른 이름으로 저장> 파일 형식을 응용 프로그램으로 설정 한 다음 저장하십시오.
~ / Library / Scripts / Finder / 폴더에 스크립트를 배치하고 스크립트 메뉴에서 직접 실행할 수도 있습니다.
또 다른 방법은 osascript
명령을 사용 하여 Finder에서 .scpt를 실행하는 서비스를 Automator에 작성하는 것 입니다.
(영어로 Automator를 사용하지 않으므로 문구가 정확하지 않을 수 있습니다)
AppleScript 실행 상자에 다음 코드를 입력하십시오.
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
파일> 저장하고 "AppleScript 실행"과 같은 이름을 지정하십시오.
이제 Finder에서 .scpt 파일을 마우스 오른쪽 버튼으로 클릭하고 "AppleScript 실행"을 선택하고 스크립트가 실행 된 것을 볼 수 있습니다.
참조 : 서브 루틴 소스 -AppleScript : 필수 서브 루틴
osascript
가 없으며 파인더에서 하나 이상의 .scpt 파일이 선택된 경우 처리하도록 코딩되지 않았습니다. 2. 다음의 한 줄의 코드가 AppleScript 실행 액션에 추가 한 모든 것을 대체 할 때 그러한 코딩 리거 마를 밟을 필요는 없습니다. do shell script "osascript " & quoted form of POSIX path of item 1 of input
다음은 현재 AppleScript 코드의 모든 것을 바꾸는 최소한의 예입니다. paste.ee/p/XngKA
if
하는 else
절로 명령문 블록을 확장 할 수 있습니다 . 이렇게하면 서비스가 실행될 때 실수로 잘못된 유형의 파일을 선택하지 않은 경우 왜 아무 일이 발생하지 않았는지 궁금해하지 않습니다.