자동화(AppleScript 및 단축어)
여기서 자동화는 양방향으로 작동합니다.
밖으로: Peach Commander는 스크립트로 제어할 수 있으므로 AppleScript와 단축어 앱에서 구동할 수 있습니다. 몇 개의 핵심 동사로 스크립트가 패널을 이동하고, 마스크로 파일을 선택하고, 현재 선택 항목을 복사하거나 옮기고, Peach Commander의 어떤 명령이든 id로 실행할 수 있습니다 — 메뉴가 쓰는 것과 똑같은 동작을 재사용하므로 스크립트로 실행한 단계는 손으로 한 것과 똑같이 동작합니다. 이 페이지의 나머지는 그에 관한 내용입니다.
안으로: Peach Commander는 여러분의 스크립트를 — AppleScript나 JavaScript를 — 직접 실행하고, 그것을 메뉴, 버튼 또는 키에 놓을 수도 있습니다. 그러려면 Scripting 플러그인이 필요하며, 이 플러그인은 꺼진 상태로 제공됩니다. 아래의 자신의 스크립트 실행하기를 참조하십시오.
하나가 아니라 파일 작업의 연속을 반복하려면 매크로를 참조하십시오.
사전 보기¶
- 스크립트 편집기(
/Applications/Utilities에 있음)를 엽니다. - 윈도우 ▸ 라이브러리를 선택한 다음 Peach Commander를 두 번 클릭합니다(목록에 없으면 +로 추가합니다).
- 사전이 열리며 아래의 명령과 속성이 나열됩니다.
스크립트가 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가 실행하는 것입니다.
이것은 플러그인이며 꺼진 상태로 제공됩니다. 여러분이 고른 프로그램을 실행하는 일은 이 앱의 나머지가 할 수 있는 모든 것을 할 수 있고, 그중 어느 것도 다루지 않는 몇 가지도 할 수 있기 때문입니다. 스위치는 두 개이며, 여러분이 켜기 전까지 둘 다 꺼져 있습니다:
- 환경 설정 ▸ 플러그인… — Scripting을 켭니다.
- 설정 ▸ 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는 단일 창 앱이므로 스크립트는 해당 창의 두 패널을 대상으로 합니다.