기존 AppleScript 파일을 서비스로 작동시키는 방법?


11

AppleScript를 만들어 하드 드라이브의 특정 폴더에 파일로 저장했습니다. 이제 바로 가기를 지정하고 Automator를 통해 서비스를 만들어야하는 것처럼 보이지만 Run AppleScript기존의 .scpt 파일을 실행하려는 동안 코드를 넣도록 요청합니다. 그렇게하는 방법?

답변:


9

예, 여기서 Automator가 가장 좋습니다. 서비스를 작성하려면 다음 단계를 수행하십시오.

  1. Automator를 열고 서비스를 선택하십시오.

    여기에 이미지 설명을 입력하십시오

  2. 'applescript'를 검색하고 조치를 오른쪽 분할 창으로 끄십시오.

    여기에 이미지 설명을 입력하십시오

  3. 변경 Service receives selected text에 대한 Service receives no input그래서 항상 서비스 메뉴에 나타납니다 :

    여기에 이미지 설명을 입력하십시오

  4. 다음으로 교체하십시오 (* Your script goes here *).

    do shell script "/usr/bin/osascript /path/to/your/script.scpt"

    기존 .scpt파일 을 실행하려는 경우 참고 osascript가 사용자 상호 작용을 처리 할 수 있는 대화 상자 창을 표시 같은 :

    여기에 이미지 설명을 입력하십시오

    이 제한을 극복하려면 이 해결 방법을 사용 하거나 단순히 (* Your script goes here *)스크립트 내용으로 바꾸 십시오.

  5. 저장해:

    여기에 이미지 설명을 입력하십시오

  6. 원하는 경우 새 서비스에 바로 가기를 할당 할 수 있습니다. Finder 또는 열려있는 응용 프로그램에서 서비스> 서비스 환경 설정을 선택하십시오.

    여기에 이미지 설명을 입력하십시오

  7. 일반적이지 않은 shorcut을 지정하십시오.

    여기에 이미지 설명을 입력하십시오

  8. 이제 이전 단계에서 지정한 바로 가기를 통해 모든 응용 프로그램에서 서비스에 액세스 할 수 있습니다.

    여기에 이미지 설명을 입력하십시오

service open을 제거하려면 서비스 ~/Library/Services를 삭제하고 휴지통을 비우십시오.

여기에 이미지 설명을 입력하십시오


기존 스크립트 파일을 실행하고 Automator에 다시 쓰지 않기를 원한다고 말했습니다.
Nakilon

복사 / 붙여 넣기는 괜찮을 것이라고 생각했지만 네, 그렇습니다. 질문에 명확하게 나와 있습니다. osascript다른 답변에서 설명한대로을 사용하십시오 .
jaume

@Nakilon osascriptAutomator에서 .scpt파일 을 실행 하는 방법, 제한 사항 및 두 가지 해결 방법을 추가했습니다.
jaume

방금 했어요 그것은 효과가 있었다. 그러나 이제 스크립트를 시작하는 데 4 ~ 5 초가 걸립니다. (코드가 워크 플로에 직접 저장되면 거의 즉시 시작됩니다.)이 문제의 원인 또는 실행 속도가 빠른 아이디어가 있습니까?

1
@ 잭 감사합니다, 왜 osascript스크립트를 실행하는 데 4 초가 더 필요한지 모르겠지만 Automator는 지연의 원인이 아닙니다. 디버그하고 싶을 수도 osascript있습니다. opensourcehacker.com/2011/12/02/…stackoverflow.com/questions/31045575/…
jaume

4

스크립트에서 on run인수를 추가하십시오 .

on run
    -- do whatever the script does
end run

그런 다음 Automator "Run Shell Script"작업을 다음 osascript명령 과 함께 사용할 수 있습니다 .

osascript /path/to/script.scpt

osascript쉘에서 AppleScript를 실행하는 명령입니다. 스크립트를 AppleScript 편집기 외부에서 실행하려면 스크립트에 줄이 필요합니다.


1
명시 적 실행 핸들러를 포함 할 필요는 없습니다. 모든 스크립트에는 암시 적 실행 핸들러가 있습니다. Automator의 AppleScript 실행 조치에 명시 적 실행 핸들러가 포함되는 이유는 Automator가 특수 on run {input, arguments}양식을 사용하기 때문에 Automator 에서도 실행 핸들러를 제거 할 수 있기 때문 입니다.
Lri

1
@ ͏͏͏이 핑이 당신에게 닿는 지 궁금합니다. 소재 이름 선택에 대한 전문가.
bmike

3

아마도이 서비스를 살펴보고 싶을 것 입니다. "어떤 스크립트에서든 Mac OS X 서비스를 생성 할 수 있습니다."


1
링크가 아닌 여기에 답변을 제공해 줄 수 있습니까
user151019

2

스크립트에 단축키를 할당하기 위해 Automator 서비스를 생성하지 않는 것이 좋습니다. 10.7 및 10.8에는 메뉴 막대에서 서비스 메뉴 위로 마우스를 가져 가기 전까지는 Automator 서비스의 키보드 단축키가 항상 작동하지 않는 버그가 있습니다. 서비스가 실행되기 전에 상대적으로 긴 (아마도 0.1에서 1 초) 지연이 있습니다.

키보드 단축키를 스크립트에 할당하는 다른 방법 은 이 답변 을 참조하십시오 . 저는 FastScripts와 Alfred를 사용합니다.


나는이 호버링의 필요성을 경험 한 적이 있습니까? 당신이 말하는 것에 대한 더 자세한 정보가
있습니까?

1
그것이 모든 OS X 설치 또는 모든 서비스에 영향을 미치는지 확실하지 않지만 다른 설치에서 여러 번 실행되었으며 여기 및 다른 사용자가 슈퍼 사용자에 대해 언급했습니다. 간혹 모든 Automator 서비스의 키보드 바로 가기가 작동을 멈추지 만 메뉴 막대에서 서비스 메뉴 위로 마우스를 가져 가거나 마우스로 하나의 서비스를 선택하면 다시 작동하기 시작합니다.
Lri

2

이와 같은 간단한 자동화 서비스를 사용하여 기존 스크립트를 실행할 수 있습니다. 키보드 단축키 내에서 단축키를 평소대로 할당하십시오. 바로 가기를 선택하기 전에 일부 응용 프로그램을 다시 시작해야 할 수도 있습니다.

예.

sayHello 스크립트 :

say "hello"

자동화 서비스 : 여기에 이미지 설명을 입력하십시오

이 예에서는 다음을 사용합니다.

  • 입력이 없습니다
  • 모든 응용 프로그램.

동작은 셸 스크립트 실행 코드는 유닉스 명령 osascript 와 파일 경로 만 사용 합니다. 패스 입력stdn 또는 arguments 가 될 수 있습니다

스크립트에 특별한 조치를 취할 필요는 없습니다.

osascript 명령 에 대한 자세한 내용 은 해당 매뉴얼 페이지 를 참조하십시오. 매뉴얼 페이지는 스크립트에 인수를 전달할 수있는 또 다른 예를 제공합니다.


0

서비스를 개발하려면 다음 중 하나와 같은 서비스를 생성하는 일종의 소프트웨어가 필요합니다.

  1. .workflow를 만드는 자동화 기
  2. .service를 작성하는 ThisService
  3. .app를 만드는 Xcode

위의 모든 종류의 서비스는 패키지입니다. 이들은 서비스 속성을 지정하는 plist를 포함하는 모든 폴더입니다.

다음은 "AppleScript 실행"Automator 조치를 사용하여 기존 .script를 호출하는 Automator를 사용하여 서비스를 작성하는 방법입니다.

기존 AppleScript를 호출하는 자동화 서비스

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.