Skip to content

Автоматизація (AppleScript і Швидкі команди)

Автоматизація тут працює в обидві сторони.

Назовні: Peach Commander піддається сценаріям, тож ним можна керувати з AppleScript і з програми «Швидкі команди». Кілька основних дієслів дозволяють сценарію переміщатися по панелях, виділяти файли за маскою, копіювати або переміщувати поточне виділення та виконувати будь-яку команду Peach Commander за її id — тими самими діями, які використовують меню, тож крок зі сценарію поводиться як ручний. Про це решта цієї сторінки.

Усередину: Peach Commander також може виконати ваш сценарій — AppleScript або JavaScript — і помістити його в меню, на кнопку або на клавішу. Для цього потрібен додаток Scripting, який постачається вимкненим; див. Виконання власних сценаріїв нижче.

Щоб повторювати послідовність дій із файлами, а не одну, див. Макроси.

Перегляд словника

  1. Відкрийте Редактор сценаріїв (у /Applications/Utilities — «Утиліти» у Finder).
  2. Виберіть Вікно ▸ Бібліотека, потім двічі клацніть Peach Commander (додайте його кнопкою +, якщо його немає в списку).
  3. Словник відкриється, перелічуючи команди та властивості нижче.

Уперше, коли сценарій керує 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.

Це додаток, і він постачається вимкненим, бо запуск програми за вашим вибором умієте все, що вміє решта застосунку, і ще кілька речей, яких не покриває ніщо з нього. Два перемикачі, обидва вимкнені, доки ви їх не поставите:

  1. Конфігурація ▸ Додатки… — увімкніть Scripting.
  2. Налаштування ▸ ШІ — увімкніть Дозволити виконання сценаріїв. Це на тій сторінці тому, що дозвіл того самого роду, що й оболонка асистента, і ці два йдуть разом.

Потім покладіть сценарій у 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 — застосунок з одним вікном, тож сценарії націлюються на дві панелі цього вікна.