Я пытаюсь сделать событие календаря automator, где каждую пятницу он удаляет файлы, дата изменения которых старше 30 дней; За исключением файлов в папках, помеченных красным.
У меня есть папка «Документы» с 3 файлами, одна папка создана сегодня и помечена красным, папка была изменена в последний раз неделю назад, и PDF, который был изменен более 30 дней назад.
Мой скрипт-автоматизатор выглядит следующим образом:
[Найти элементы поиска] Поиск «Документы», ВСЕ из следующего верно:
-Date last modified is not in the last 30 days
-Label is not red
[Переместить элементы Finder в корзину]
//конец
Но это перемещает папку с красной пометкой и старый PDF, когда он должен только переместить PDF в корзину.
Может кто-нибудь мне помочь? Спасибо!
Изменить: Запуск MacOS 10.13.3
applescript
automator
dariasx1
источник
источник
tell application "Finder" to get every file in the (path to documents folder) whose modification date > ((current date) - 30 * days) and label index is not 2
. Если это работает , как ожидалось, вы можете обменятьget
наdelete
.Ответы:
Мое первоначальное предложение по этой проблеме состояло в том, чтобы заменить действия, которые вы в данный момент выполняете в рабочем процессе Automator, действием Run AppleScript , использующим эту команду:
После этого вы либо добавили бы действие для удаления этих элементов, либо изменили
get every item
бы егоdelete every item
в сценарии. Однако, как указал @ user3439894 , это не будет проходить по деревьям папок, поэтому любые элементы внутри папки, которые старше 30 дней (и не помечены красным), не будут обнаружены.Следующий скрипт представляет собой пример метода, который использует рекурсию для спуска по дереву каталогов, удаляя файлы (или помечая их для удаления), по мере продвижения:
Я кратко проверил его на моей довольно сложной древовидной структуре, и оказалось, что она успешно работает. Тем не менее, я пишу это и тестирую, хотя и устала, но, тем не менее, я всегда настоятельно советую вам проверить этот скрипт самостоятельно на фиктивных файлах и папках, чтобы убедиться, что он работает. Пожалуйста, сообщите о том, как это происходит, включая - если они возникнут - любые ошибки, с конкретными подробностями о том, как я могу воспроизвести ошибку самостоятельно.
источник