#applescript #automator
Вопрос:
В macOS я хочу, чтобы действие с папкой запускалось, когда я помещаю новый файл во вложенную папку. Действие должно захватить только что добавленный файл в папку и скопировать его в другую папку, где собраны все последние файлы, которые можно просмотреть вместе. Я также хочу, чтобы скрипт удалил любую старую версию того же файла, который он копирует в сопоставленную папку. Проблема в том, что имена файлов немного отличаются, так как в них указан номер версии. Номер версии для начала определен как «v01a», но может быть изменен на «v01b» или «v01e», «v02a» или «v03c». Поэтому, если файл называется «1234_ProjectName_Image01_COMP_v01a.jpg» уже существует, и новый файл называется «1234_ProjectName_Image01_COMP_v01b.jpg» добавляется файл под названием «1234_ProjectName_Image01_COMP_v01a.jpg» необходимо удалить из папки назначения.
Я несколько раз пытался начать работу в automator, но так и не собрал все необходимое, чтобы это было полезно.
(ИСТОЧНИК)
- Ежедневные газеты/_внутренние Dailies/_Internal/Image01/1234_ProjectName_Image01_COMP_v01a.jpg Dailies/_Internal/Image02/1234_ProjectName_Image02_COMP_v01a.jpg Dailies/_Internal/Image03/1234_ProjectName_Image03_COMP_v01a.jpg
(ПУНКТ НАЗНАЧЕНИЯ)
- Ежедневные газеты/_Latest Dailies/_Latest/1234_ProjectName_Image01_COMP_v01a.jpg Dailies/_Latest/1234_ProjectName_Image02_COMP_v01a.jpg Dailies/_Latest/1234_ProjectName_Image03_COMP_v01a.jpg
Если добавляется новый файл, называемый
- Dailies/_Internal/Image01/1234_ProjectName_Image01_COMP_v02a.jpg
затем этот файл копируется из исходной папки и помещается в папку назначения.
(ПУНКТ НАЗНАЧЕНИЯ)
- Ежедневные газеты/_Latest Dailies/_Latest/1234_ProjectName_Image01_COMP_v01a.jpg Dailies/_Latest/1234_ProjectName_Image01_COMP_v02a.jpg Dailies/_Latest/1234_ProjectName_Image02_COMP_v01a.jpg Dailies/_Latest/1234_ProjectName_Image03_COMP_v01a.jpg
Здесь уже есть изображение с тем же именем, за исключением номера версии, поэтому скрипт также должен удалить старый файл, оставив меня с ним.
(ПУНКТ НАЗНАЧЕНИЯ)
- Ежедневные газеты/_Latest Dailies/_Latest/1234_ProjectName_Image01_COMP_v02a.jpg Dailies/_Latest/1234_ProjectName_Image02_COMP_v01a.jpg Dailies/_Latest/1234_ProjectName_Image03_COMP_v01a.jpg
Я ни за что на свете не могу понять, как это сделать, любые идеи будут высоко оценены.
Комментарии:
1. Действие папки не отслеживает вложенные папки — оно должно быть прикреплено к каждой отслеживаемой папке. Меняется ли только часть имени после последнего подчеркивания, и всегда ли добавленный элемент сортируется после существующего?
2. О, хорошо, это позор, значит, нет простого способа вложить его в папку с вложенными папками? У меня могло бы быть 20 или 30 вложенных папок. Да, меняется только часть имени после последнего подчеркивания. Не уверен, что вы имеете в виду под последним наказанием. Это может быть либо номер, либо последняя буква, которая меняется. Он начнется с _v01a, затем перейдет в _v01b, затем _v01c. Это может перейти к _v01f. Затем он может перейти к _v02a, затем _v02c, затем _v02f, затем _v03b. Однако он никогда не будет возвращаться назад по цифрам или буквам
3. Вы можете вручную или программно добавлять действия с папками по мере создания новых вложенных папок. Да, я имел в виду, что цифры и буквы в версии всегда увеличиваются, поэтому новые и старые можно просто отсортировать, чтобы определить, какую из них сохранить.
4. Как бы я тогда программно добавил новые действия с папками? Да, версия будет только увеличиваться
5. Это из Скрытого набора системных событий —
tell application "System Events" to attach action to theFolder using theScript
. Как вы выбираете папку для добавления?