Skip to content

자동화(AppleScript 및 단축어)

여기서 자동화는 양방향으로 작동합니다.

밖으로: Peach Commander는 스크립트로 제어할 수 있으므로 AppleScript와 단축어 앱에서 구동할 수 있습니다. 몇 개의 핵심 동사로 스크립트가 패널을 이동하고, 마스크로 파일을 선택하고, 현재 선택 항목을 복사하거나 옮기고, Peach Commander의 어떤 명령이든 id로 실행할 수 있습니다 — 메뉴가 쓰는 것과 똑같은 동작을 재사용하므로 스크립트로 실행한 단계는 손으로 한 것과 똑같이 동작합니다. 이 페이지의 나머지는 그에 관한 내용입니다.

안으로: Peach Commander는 여러분의 스크립트를 — AppleScript나 JavaScript를 — 직접 실행하고, 그것을 메뉴, 버튼 또는 키에 놓을 수도 있습니다. 그러려면 Scripting 플러그인이 필요하며, 이 플러그인은 꺼진 상태로 제공됩니다. 아래의 자신의 스크립트 실행하기를 참조하십시오.

하나가 아니라 파일 작업의 연속을 반복하려면 매크로를 참조하십시오.

사전 보기

  1. 스크립트 편집기(/Applications/Utilities에 있음)를 엽니다.
  2. 윈도우 ▸ 라이브러리를 선택한 다음 Peach Commander를 두 번 클릭합니다(목록에 없으면 +로 추가합니다).
  3. 사전이 열리며 아래의 명령과 속성이 나열됩니다.

스크립트가 Peach Commander를 처음 제어할 때 macOS는 이를 허용할지 묻습니다(시스템 설정 ▸ 개인정보 보호 및 보안 ▸ 자동화). 한 번 승인하면 이후 스크립트는 묻지 않고 실행됩니다.

읽을 수 있는 것

속성 의미
active folder 활성 패널 폴더의 POSIX 경로.
inactive folder 다른 패널 폴더의 POSIX 경로.
selection paths 활성 패널에서 선택된 항목(또는 커서 아래의 항목).

동사

명령 하는 일
go to "<path>" [in left\|right] 패널에서 폴더를 엽니다(기본값: 활성 패널).
select "<mask>" 와일드카드 마스크로 활성 패널의 항목을 선택합니다(예: *.pdf).
copy items to "<folder>" 활성 패널의 선택 항목을 폴더로 복사합니다.
move items to "<folder>" 활성 패널의 선택 항목을 폴더로 이동합니다.
run command "<id>" id로 임의의 명령을 실행합니다(예: cm_PackFiles).

복사와 이동은 F5/F6과 같은 백그라운드 전송 대기열을 사용하므로, 진행 상황과 덮어쓰기 프롬프트가 수동 작업과 정확히 동일하게 나타납니다.

예시

tell application "Peach Commander"
    go to "~/Downloads" in left
    select "*.pdf"
    copy items to "~/Documents/PDFs"
    return selection paths
end tell

단축어에서 사용하기

단축어 앱에서 AppleScript 실행 동작을 추가하고 위와 같은 스크립트를 붙여 넣습니다. 그러면 Peach Commander 단계를 더 큰 단축어에 접어 넣을 수 있습니다. 예를 들어 폴더 변경이나 단축키로 트리거할 수 있습니다.

자신의 스크립트 실행하기

반대 방향: 여러분의 스크립트를 Peach Commander가 실행하는 것입니다.

이것은 플러그인이며 꺼진 상태로 제공됩니다. 여러분이 고른 프로그램을 실행하는 일은 이 앱의 나머지가 할 수 있는 모든 것을 할 수 있고, 그중 어느 것도 다루지 않는 몇 가지도 할 수 있기 때문입니다. 스위치는 두 개이며, 여러분이 켜기 전까지 둘 다 꺼져 있습니다:

  1. 환경 설정 ▸ 플러그인… — Scripting을 켭니다.
  2. 설정 ▸ AI — 스크립트 실행 허용을 켭니다. 이 항목이 그 페이지에 있는 것은 어시스턴트의 셸과 같은 종류의 권한이고, 두 가지가 함께 놓이기 때문입니다.

그다음 설정 폴더 안의 scripts/에 스크립트를 넣습니다 — 명령 ▸ 스크립트 폴더 열기가 그곳으로 데려가며, 처음에는 예제를 남겨 둡니다. 그 폴더에 있는 .applescript, .scpt, .jxa 파일은 그 자체로 스크립트입니다. 등록할 것은 없습니다.

스크립트가 받는 것

패널 상태는 환경으로 전달되므로, 보통의 경우에는 Apple 이벤트도 권한 요청도 필요하지 않습니다:

변수 의미
PC_ACTIVE_DIR 활성 패널의 폴더
PC_TARGET_DIR 다른 패널의 폴더
PC_CURSOR_NAME 커서 아래의 파일
PC_SELECTION_COUNT 선택된 항목의 개수
PC_SELECTION_FILE 선택된 경로를 한 줄에 하나씩 담은 텍스트 파일(선택된 것이 없으면 없음)
set here to system attribute "PC_ACTIVE_DIR"
return "The active panel is showing " & here

그 이상은 앱 자체를 통해, 위의 동사들로 처리됩니다 — 즉 두 절반이 서로 맞물립니다.

스크립트를 버튼이나 키에 놓기

각 스크립트는 plugin.script.run.<이름>이라는 명령이 되며, <이름>은 확장자를 뗀 파일 이름입니다(공백과 점은 하이픈이 됩니다). 이 id는 cm_* id가 통하는 모든 곳에서 통합니다: 버튼 막대, usercmd.ini, .mnu 파일, 그리고 환경 설정 ▸ 단축키 편집….

스크립트가 실행되는 방식과 시간 제한

기본적으로 스크립트는 별도의 프로세스로 실행되며, 따라서 시간 제한을 줄 수 있고 초과하면 멈출 수 있습니다 — 따로 정하지 않으면 30초입니다. 스크립트는 앱 안에서 실행되도록 선택할 수도 있습니다. 그러면 구조화된 값을 반환할 수 있고 실행 사이에 컴파일된 상태로 남지만, 시간 제한이 없습니다. 반복문에 빠진 스크립트는 앱을 붙잡습니다. 선택은 스크립트 옆의 scripts.json에 적습니다:

[
  { "id": "Tidy", "fileName": "Tidy.applescript", "title": "Tidy Downloads",
    "language": "AppleScript", "mode": "subprocess", "timeoutSeconds": 60 }
]

기본값과 다른 부분만 항목이 필요합니다. 항목이 없는 파일은 자기 이름을 제목으로 갖고, 별도 프로세스로 실행되며, 30초 뒤에 멈춥니다.

어시스턴트를 위해

플러그인을 켜고 설정을 활성화하면 어시스턴트는 run_applescript, run_jxa, check_script를 갖게 됩니다. 각각은 정확한 스크립트를 보여 주고 무언가 실행되기 전에 여러분의 승인을 기다리며, 어느 것도 MCP를 통해 외부 에이전트에 제공되지 않습니다.

참고

  • run command에 전달하는 명령 id는 명령 브라우저에 표시되는 것과 같은 cm_* id입니다(시작 메뉴 및 사용자 지정 명령 참조).
  • 스크립팅은 항상 활성 패널에 작용합니다. 특정 쪽이 필요하면 먼저 go to … in left / in right를 사용하십시오.
  • Peach Commander는 단일 창 앱이므로 스크립트는 해당 창의 두 패널을 대상으로 합니다.