편집기를 열지 않고 애플 스크립트 실행


11

애플 스크립트를 실행할 때마다 편집기가 나타납니다.

직접 실행할 수있는 방법이 있습니까?

답변:


19

스크립트가 저장되는 방식은 Mac OS X에서 작동하는 방식에 큰 영향을 미칩니다. 스크립트가 스크립트로 저장된 것처럼 들리므로 스크립트를 열 때마다 스크립트 편집기가 열립니다.

문제를 해결하려면 AppleScript 편집기에서 스크립트를 열고 응용 프로그램으로 저장하십시오. 그 트릭해야합니다.

단계는 (편집기에서)

파일> 다른 이름으로 저장> 파일 형식을 응용 프로그램으로 설정 한 다음 저장하십시오.

링크 텍스트


이제 "run run to press or quit to quit"이라는 메시지가 표시되지만 스크립트 오류 인 것 같습니다. 주셔서 감사합니다
OscarRyz

1
실행 확인란을 선택하면 프롬프트가 표시되지 않을 수 있습니다.
Bruce McLeod

내 이해는 실행 만 확인란이 나중에 스크립트를 편집 할 수 없다는 것입니다.
jtbandes

@jtbandes ahhhh ... 말이됩니다
Bruce McLeod

2
요세미티에서 현재 방법은 파일-> 내보내기를 사용하는 것입니다. 최신 버전의 AppleScript 편집기에는 다른 이름으로 저장 대화 상자가 없습니다.
anon58192932

6

스크립트를 저장할 때 파일 형식 드롭 다운에서 "응용 프로그램"을 선택할 수 있습니다. 그런 다음 실행할 수 있으며 스크립트 편집기로 끌어서 스크립트를 열 수 있습니다. 또는 실행만을 선택하면 편집 가능한 버전이 저장되지 않습니다.

다른 방법으로는 사용할 수 있습니다 osascript으로하거나, 터미널에서 명령을 osascript /path/to/script하거나 osascript -e "a short script here".


1

~ / Library / Scripts / Finder / 폴더에 스크립트를 배치하고 스크립트 메뉴에서 직접 실행할 수도 있습니다.


0

또 다른 방법은 osascript명령을 사용 하여 Finder에서 .scpt를 실행하는 서비스를 Automator에 작성하는 것 입니다.

(영어로 Automator를 사용하지 않으므로 문구가 정확하지 않을 수 있습니다)

  1. 자동화 시작
  2. 파일> 새로 만들기를 선택하고 서비스를 선택하십시오.
  3. "서비스 수락 :"에서 "파일 또는 폴더"를 선택하십시오.
  4. "위치 :"에서 "Finder.app"을 선택하십시오.
  5. "AppleScript 실행"을 검색하고 항목을 오른쪽으로 드래그하십시오.
  6. 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
    
  7. 파일> 저장하고 "AppleScript 실행"과 같은 이름을 지정하십시오.

  8. 이제 Finder에서 .scpt 파일을 마우스 오른쪽 버튼으로 클릭하고 "AppleScript 실행"을 선택하고 스크립트가 실행 된 것을 볼 수 있습니다.

참조 : 서브 루틴 소스 -AppleScript : 필수 서브 루틴


AppleScript 코드에 문제가 있습니다. 1. 선택된 항목이 .scpt 파일인지 확인하기위한 오류 처리 또는 코드 osascript가 없으며 파인더에서 하나 이상의 .scpt 파일이 선택된 경우 처리하도록 코딩되지 않았습니다. 2. 다음의 한 줄의 코드가 AppleScript 실행 액션에 추가 한 모든 것을 대체 할 때 그러한 코딩 리거 마를 밟을 필요는 없습니다. do shell script "osascript " & quoted form of POSIX path of item 1 of input다음은 현재 AppleScript 코드의 모든 것을 바꾸는 최소한의 예입니다. paste.ee/p/XngKA
user3439894

최소 예에서, 선택된 파일이 .scpt 파일이 아니라는 메시지를 표시 if하는 else절로 명령문 블록을 확장 할 수 있습니다 . 이렇게하면 서비스가 실행될 때 실수로 잘못된 유형의 파일을 선택하지 않은 경우 왜 아무 일이 발생하지 않았는지 궁금해하지 않습니다.
user3439894
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.