Автоматизація (AppleScript і Швидкі команди)
Автоматизація тут працює в обидві сторони.
Назовні: Peach Commander піддається сценаріям, тож ним можна керувати з AppleScript і з програми «Швидкі команди». Кілька основних дієслів дозволяють сценарію переміщатися по панелях, виділяти файли за маскою, копіювати або переміщувати поточне виділення та виконувати будь-яку команду Peach Commander за її id — тими самими діями, які використовують меню, тож крок зі сценарію поводиться як ручний. Про це решта цієї сторінки.
Усередину: Peach Commander також може виконати ваш сценарій — AppleScript або JavaScript — і помістити його в меню, на кнопку або на клавішу. Для цього потрібен додаток Scripting, який постачається вимкненим; див. Виконання власних сценаріїв нижче.
Щоб повторювати послідовність дій із файлами, а не одну, див. Макроси.
Перегляд словника¶
- Відкрийте Редактор сценаріїв (у
/Applications/Utilities— «Утиліти» у Finder). - Виберіть Вікно ▸ Бібліотека, потім двічі клацніть Peach Commander (додайте його кнопкою +, якщо його немає в списку).
- Словник відкриється, перелічуючи команди та властивості нижче.
Уперше, коли сценарій керує Peach Commander, macOS попросить дозволити це (Системні параметри ▸ Конфіденційність і безпека ▸ Автоматизація). Схваліть це раз, і пізніші сценарії працюють без запиту.
Що можна прочитати¶
| Властивість | Значення |
|---|---|
active folder |
Шлях POSIX теки активної панелі. |
inactive folder |
Шлях POSIX теки другої панелі. |
selection paths |
Вибрані елементи в активній панелі (або елемент під курсором). |
Дієслова¶
| Команда | Що робить |
|---|---|
go to "<шлях>" [in left\|right] |
Відкрити теку в панелі (за замовчуванням: активна панель). |
select "<маска>" |
Вибрати елементи в активній панелі за маскою з символами підстановки, напр. *.pdf. |
copy items to "<тека>" |
Скопіювати вибір активної панелі до теки. |
move items to "<тека>" |
Перемістити вибір активної панелі до теки. |
run command "<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.
- Налаштування ▸ ШІ — увімкніть Дозволити виконання сценаріїв. Це на тій сторінці тому, що дозвіл того самого роду, що й оболонка асистента, і ці два йдуть разом.
Потім покладіть сценарій у scripts/ у теці конфігурації — Команди ▸ Відкрити теку сценаріїв приведе вас туди й першого разу залишить там приклад. Файл .applescript, .scpt або .jxa у цій теці і є сценарієм; реєструвати нічого не потрібно.
Що отримує сценарій¶
Стан панелей приходить через середовище, тому звичайний випадок не потребує Apple events і жодного запиту дозволів:
| Змінна | Означає |
|---|---|
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 працює всюди, де працює id cm_*: у панелі кнопок, у usercmd.ini, у файлі .mnu та в Конфігурація ▸ Редагувати скорочення….
Як виконується сценарій і обмеження часу¶
Типово сценарій виконується як окремий процес, а отже йому можна задати обмеження часу й зупинити його при перевищенні — тридцять секунд, якщо не вказано інакше. Сценарій може вибрати виконання всередині застосунку, що дозволяє йому повернути структуроване значення й залишає його скомпілованим між запусками, але тоді обмеження часу немає: сценарій, що потрапив у цикл, тримає застосунок. Вкажіть вибір у scripts.json поряд зі своїми сценаріями:
[
{ "id": "Tidy", "fileName": "Tidy.applescript", "title": "Tidy Downloads",
"language": "AppleScript", "mode": "subprocess", "timeoutSeconds": 60 }
]
Запис потрібен лише тому, що відрізняється від типових значень; файл без запису отримує власне ім’я як заголовок, виконується як окремий процес і зупиняється через тридцять секунд.
Для асистента¶
З увімкненим додатком і заданим налаштуванням асистент отримує run_applescript, run_jxa та check_script. Кожен із них показує вам точний текст сценарію й чекає на ваше схвалення, перше ніж щось виконається, і жоден із них ніколи не пропонується зовнішньому агентові через MCP.
Примітки¶
- Ідентифікатор команди, який ви передаєте до
run command, — це той самий ідентифікаторcm_*, що показаний у переглядачі команд (див. Меню Пуск і власні команди). - Сценарій завжди діє на активну панель; використайте спершу
go to … in left/in right, якщо вам потрібна конкретна сторона. - Peach Commander — застосунок з одним вікном, тож сценарії націлюються на дві панелі цього вікна.