Можно ли использовать Automator для автоматического перемещения файла субтитров? .srt в папку, где находится видеофайл с таким же именем?
Допустим, у меня есть файл ~/Videos/MyVideoFolder/my_video.avi
и я скачиваю файл ~/Downloads/my_video.srt
Я хочу, чтобы он автоматически переместился в ~/Videos/MyVideoFolder/
,
Файлы субтитров идентифицируются по расширению .srt , но видео может быть любого типа.
Ответы:
Вы можете использовать рабочий процесс действий папки Automator.
Действие папки отслеживает папку загрузок.
Фильтр искателей фильтры быть расширением
Applescript делает все остальное.
Код Applescript:
Код комментируется, чтобы объяснить, что он делает.
Это пример. Он работает как в моих тестах, когда файл с правильным расширением добавляется в наблюдаемую папку. Затем перемещает его / их в папку с видео, если они там еще не существуют. Вы можете установить его на перезапись, если вы хотите удалить внутреннюю если условие и просто используйте первое условие if с кодом перемещения.
Я не проверял это на самом деле загрузки. Только перетащите. Возможно, вам придется отрегулировать, если действие папки не срабатывает при смене расширения. .скачать к актуальному расширению файла
источник
Попробуйте использовать AppleScript вместо или в сочетании с Automator. Automator нелегко вписывается в рабочие процессы, требующие условных переходов.
Условные ветви - это шаги в рабочем процессе, которые выполняют действие в зависимости от некоторого состояния или ситуации. В этом случае, если видеофайл присутствует в папке назначения.
AppleScript может справиться с этим типом задачи; как и Perl-скрипт или другой скриптовый язык.
Увидеть Может ли Automator ветвиться на основе значения переменной или результата шага? для подхода на основе сценариев в сочетании с Automator.
Скриптовый подход
Для таких задач я предпочитаю скриптовые языки, такие как perl. Ниже приведен сценарий, с которого следует начать - или на котором могут основываться другие. Это не проверено, поэтому относитесь с осторожностью:
источник
Вы также можете использовать скрипт оболочки следующим образом:
Вам нужен Bash 4 для
globstar
, что делает**
соответствовать нескольким уровням каталогов. Вы можете установить Bash 4 и сделать его оболочкой входа по умолчанию, запустивbrew install bash;echo /usr/local/bin/bash|sudo tee -a /etc/shells;chsh -s /usr/local/bin/bash
,nullglob
делает шаблоны без совпадений расширяющимися до пустой строки.for f; do
эквивалентноfor f in "$@"; do
, когдаextglob
включен,@(srt|ass|ssa)
соответствует ровно одному изsrt
,ass
, а такжеssa
, Bash не выполняет разбиение слов или расширение имени файла внутри[[
, так$f
не нужно цитироватьprintf %s\\n
печатает каждый аргумент в отдельной строке.${f##*/}
удаляет самый длинный*/
шаблон с самого начала,${base%???}
удаляет последние три символа,${target%.*}
удаляет самый короткий.*
шаблон с конца, и${base: -3}
расширяется до последних трех символов.[[ $target ]]
эквивалентно[[ -n $target ]]
или он проверяет, если$target
установлен и не пуст.exit 0
заставляет Automator не отображать диалоговое окно с ошибкой, если последний тест завершается с 1.источник