Создайте быстрое действие Finder, которое принимает файлы, перебирает выбранные элементы и открывает каждый из них в указанном приложении. В этом руководстве используются временные текстовые файлы и TextEdit, а также проверяются отсутствие входных данных, совпадение имён файлов и неправильные подключения переменных.

Подготовьте файлы, которые сможет открыть выбранное приложение

Задача состоит в том, чтобы выбрать несколько существующих локальных файлов в Finder и открыть каждый в одном и том же приложении. Для начала создайте два простых текстовых документа: Blue note.txt с текстом Blue sample и Green note.txt с текстом Green sample. Сохраните их в новой папке на рабочем столе под названием Finder Opening Test. Если такая папка уже существует, выберите другое имя и измените соответствующий пример ниже.

Прежде чем создавать быструю команду, откройте каждый образец вручную: щёлкните по нему в Finder, удерживая Control, выберите Открыть с помощью и укажите TextEdit. Так вы убедитесь, что выбранное приложение поддерживает входные файлы. Apple описывает этот способ открытия файла в определённом приложении, а также открытие файла перетаскиванием на значок приложения. Выбор приложения для открытия файла на Mac.

Для другого сценария используйте установленное приложение и временные файлы в поддерживаемом им формате. Выбор приложения сам по себе не гарантирует, что оно сможет читать все выбранные форматы. Для первого теста используйте обычные локальные документы: для папок и пакетов документов нужны другие способы обработки.

Создайте быстрое действие Finder

Настройте приём файлов и ответ на пустой выбор

Создайте быструю команду в приложении «Быстрые команды» и назовите её Open Selected Text in TextEdit. В руководстве Apple объясняется, как добавлять действия из библиотеки и настраивать их параметры. Создание пользовательской быстрой команды на Mac.

Откройте раздел Подробнее быстрой команды, включите Использовать как быстрое действие и выберите Finder в качестве доступного расположения. Apple описывает интеграцию с Finder и отмечает, что для выбора Finder может потребоваться добавить файлы или папки в список разрешённых входных данных быстрой команды. Запуск быстрой команды во время работы на Mac.

В верхней части рабочего процесса нажмите на список принимаемых типов данных. Снимите широкое выделение и включите Файлы. По определению Apple, к этому типу относятся документы, изображения, PDF-файлы и другие файлы; для папок предусмотрен отдельный тип входных данных. В этом сценарии принимаются именно файлы. Типы входных данных в приложении «Быстрые команды» на Mac.

Задайте поведение при отсутствии входных данных: Остановить и ответить, сообщение — Выберите файлы в Finder, затем запустите это быстрое действие. Так будет понятно, почему команда не выполнилась. Apple отмечает, что некоторые места запуска, включая Dock, не передают начальные входные данные, и предлагает этот вариант ответа. Ограничение входных данных быстрой команды при запуске из другого приложения на Mac.

Подключите каждый выбранный файл к действию открытия

Добавьте действие Повторить для каждого и задайте для него список Входные данные быстрой команды. Внутри цикла добавьте действие Открыть файл. Для параметра файла укажите Элемент повтора, а в параметре приложения выберите TextEdit вместо Приложение по умолчанию. Ниже показана схема рабочего процесса, а не исполняемый код:

Получить файлы из Finder
Если входных данных нет: остановить и ответить

Повторить для каждого элемента во входных данных быстрой команды
    Открыть элемент повтора в TextEdit
Конец повтора

Ключевое подключение — Элемент повтора. Apple указывает, что действие Повторить для каждого принимает список и выполняет заключённые в цикл действия один раз для каждого элемента; во время каждой итерации переменная Элемент повтора содержит текущий элемент. Если внутри цикла передать действию открытия весь список Входные данные быстрой команды, принцип «один файл за итерацию» нарушится. Использование действий повтора в приложении «Быстрые команды» на Mac.

Перед запуском проверьте сведения о действии открытия на Mac: щёлкните его значок, удерживая Control, и выберите Показать информацию. Apple описывает этот способ проверки описания действия, принимаемых входных данных и итогового результата. Убедитесь, что выбрали действие открытия файла и что его настройки позволяют указать нужное приложение. Навигация по списку действий в приложении «Быстрые команды» на Mac.

При редактировании рабочего процесса сохраняйте следующие связи:

Этап Используемое значение Что сохранить
Входные данные Finder Выбранные файлы Сохраняйте элементы как файлы.
Входные данные Повторить для каждого Список Входные данные быстрой команды Обрабатывайте переданный список.
Элемент повтора Один выбранный файл Подключите эту переменную к действию Открыть файл.
После открытия В этом рабочем процессе последующих действий нет Не рассчитывайте, что результат будет содержать отредактированный текст документа.

Apple поясняет, что цикл повтора собирает выходные данные заключённых в него действий в общий результат. Поэтому результат цикла зависит от контрактов выходных данных этих действий. Для этой быстрой команды нужно только открыть файлы, поэтому она завершается на Конец повтора и не использует результат цикла как новый список файлов. Передача данных в действии повтора.

Выполните небольшой тест, прежде чем выбирать больше файлов

В Finder откройте папку Finder Opening Test, выберите оба образца документов и щёлкните по одному из выбранных элементов, удерживая Control. Выберите Быстрые действия, а затем Open Selected Text in TextEdit. Apple описывает запуск быстрых команд из этого контекстного меню и из панели просмотра Finder. Если быстрая команда отсутствует, проверьте, включён ли Finder в список доступных мест и включено ли его расширение. Запуск быстрой команды из меню «Быстрые действия».

Проверьте содержимое, а не только то, что открылся TextEdit. Вы должны найти и Blue sample, и Green sample. Рабочий процесс выполняет операцию открытия для каждого выбранного файла; он не задаёт расположение окон, группировку по вкладкам или порядок документов.

Используйте эту небольшую матрицу тестов, чтобы отличить проблемы с выбором файлов от проблем приложения. Ниже приведены предлагаемые проверки, а не результаты проведённых тестов:

Тест Что проверить
Выбрать только Blue note.txt Открывается синий образец.
Выбрать оба образца документов Доступно содержимое обоих файлов.
Запустить без переданных входных данных Появляется настроенное сообщение с просьбой выбрать файлы.
Выбрать два файла с одинаковыми именами из разных папок Содержимое обоих файлов можно различить.

Для последней проверки создайте две подпапки внутри временной тестовой папки. В каждую сохраните текстовый документ с именем Sample.txt; в первом укажите First folder sample, а во втором — Second folder sample. В Finder найдите оба файла, ограничив поиск тестовой папкой, выделите их и запустите быстрое действие.

Эта проверка полезна для диагностики, поскольку предложенный рабочий процесс передаёт выбранные файлы напрямую. В нём нет шага, который извлекает имя файла и заново собирает путь. При адаптации сохраняйте прямые подключения: одного имени файла недостаточно, чтобы различить эти два документа.

Учитывайте ограничения, связанные с существованием файлов и совпадением имён

Файлы должны существовать в момент выполнения операции открытия. В этой быстрой команде нет шага создания файла или восстановления. Если образец переместили или удалили, перед повторной попыткой выберите его в новом расположении. Не добавляйте фиксированный путь только для того, чтобы компенсировать устаревший выбор.

В рабочем процессе также нет действий копирования, переименования, перемещения или сохранения. Поэтому он не задаёт правила именования файлов назначения. Для этой задачи двум существующим файлам Sample.txt из разных папок не требуется новое имя выходного файла. Если позже вы добавите сохранение или экспорт, отдельно определите папку назначения и способ обработки файла с уже существующим именем.

Открытие документа также не подтверждает, что последующее редактирование или экспорт завершились успешно. Ограничьте первую версию открытием временных образцов, а любую дополнительную операцию оцените с учётом её собственных входных данных, выходных данных и поведения при наличии файла с таким же именем.

Используйте Терминал, чтобы изолировать проблемы с входными данными

Если непонятно, как Finder передаёт входные данные, проверьте ту же быструю команду, указав файлы напрямую. Apple описывает команду shortcuts run и параметр -i для передачи путей к файлам. Отдельно отмечается, что передача текста с путями через конвейер подаёт на вход текст, а не пути к файлам. Запуск быстрых команд из командной строки.

Создайте быструю команду и два образца на рабочем столе, описанные выше, затем выполните этот пример целиком в Терминале. Перед запуском «Быстрых команд» он проверяет наличие обоих файлов, а кавычки вокруг путей позволяют корректно обработать пробелы. Синтаксис командной строки проверен; команда macOS и графический рабочий процесс в этой исследовательской среде не запускались.

/bin/bash <<'SCRIPT'
set -eu

sample_dir="$HOME/Desktop/Finder Opening Test"
first="$sample_dir/Blue note.txt"
second="$sample_dir/Green note.txt"

for file in "$first" "$second"; do
  if [ ! -f "$file" ]; then
    printf 'Missing sample file: %s\n' "$file" >&2
    exit 1
  fi
done

/usr/bin/shortcuts run "Open Selected Text in TextEdit" \
  -i "$first" "$second"
SCRIPT

В этом примере используются только два явно указанных пути к образцам. Он не получает текущий выбор в Finder. Apple указывает, что при успешном запуске быстрой команды код завершения равен 0, а при ошибке — 1; всё равно проверьте документы, чтобы убедиться, что получен нужный видимый результат. Поведение команд «Быстрых команд».

Найдите первое место, где результат отличается от ожидаемого

Если быстрая команда появляется, но не получает входных данных, проверьте тип Файлы и повторите запуск, выбрав образцы в Finder. Если открывается только один документ, проверьте подключение списка к циклу и подключение Элемент повтора к действию открытия.

Чтобы посмотреть, что поступает в рабочий процесс, временно поместите действие Быстрый просмотр перед циклом повтора и явно подключите его к Входные данные быстрой команды. Также явно подключите список Входные данные быстрой команды к циклу повтора. Apple рекомендует вставлять Быстрый просмотр между действиями, чтобы проверить передаваемые данные. После проверки образцов удалите это диагностическое действие. Тестирование действий в приложении «Быстрые команды» на Mac.

Если открывается другое приложение, проверьте параметр приложения в действии Открыть файл. Если TextEdit не открывает образец вручную, сначала решите проблему с документом. Apple отмечает, что приложение может не открыть файл, если не распознаёт его формат. Выбор приложения для открытия файла на Mac.

Когда оба временных образца открываются через Finder, быстрая команда готова к той же задаче с совместимыми локальными файлами: выберите документы, запустите быстрое действие и просмотрите их в выбранном приложении. При адаптации сохраняйте файлы как отдельные элементы и подключение цикла, обрабатывающего по одному элементу.

Источники