Как переименовать файлы по мере их добавления в папку? - PullRequest
0 голосов
/ 25 апреля 2020

Я создал рабочий процесс Automator, который переименовывает iOS Скриншоты симулятора по мере их добавления в папку «Рабочий стол». Но чтобы рабочий процесс работал, мне нужно запустить его вручную. Есть ли способ заставить рабочий процесс непрерывно наблюдать за папкой Desktop и переименовывать снимки экрана, когда они добавляются как фоновая служба?

Это созданный мной рабочий процесс:

Снимок экрана Workflow

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Я бы сделал это, используя приложение под названием launchd, чтобы открывать скрипт автоматизатора, как часто, как вам нужно (например, каждые несколько секунд). Этот веб-сайт описывает, как его настроить. По сути, вы должны сначала сохранить свой скрипт автоматизатора как приложение в определенной папке (например, «Документы»), а затем написать короткий xml скрипт, который сообщает launchd, какой файл открывать и как часто это делать.

Ниже приведен пример сценария:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.NAME.test</string>
        <key>Program</key> 
        <string>/Users/USERNAME/Documents/test.app/Contents/MacOS/Application Stub</string>
        <key>StartInterval</key>
        <integer>5</integer>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

Откройте новый документ TextEdit "Простой текст" и вставьте его выше. Замените метку (com.NAME.test) на то, что вы хотите; Я обычно просто вписываю свое имя и имя сценария. Затем измените строку под Program на местоположение файла «.app», который вы сохранили ранее, не забывая изменить USERNAME на ваше имя пользователя. Помните, что /Contents/MacOS/Application Stub должен находиться сразу после части «.app», чтобы скрипт запускал ваше приложение. Затем измените строку под StartInterval на количество секунд, в течение которых скрипт должен ждать, прежде чем он снова запустится.

После того, как вы закончите редактирование скрипта, сохраните его в "/ Users / USERNAME / Library / LaunchAgents / com.NAME.test.plist, "конечно, меняя USERNAME на ваше имя пользователя и com.NAME.test на метку, используемую в скрипте xml. Если он спросит, хотите ли вы сохранить его с расширением «.plist», выберите «да». После сохранения файла откройте терминал (/Applications/Utilities/Terminal.app) и введите команду launchctl load /Users/USERNAME/Library/LaunchAgents/com.NAME.test.plist, изменив имя файла на путь к файлу вашего .plist файла. Используйте unload вместо load, чтобы остановить запуск сценария.

Для меня значок шестеренки постоянно появлялся в строке меню при каждом запуске сценария, поэтому я обнаружил на это и этот веб-сайт, который вы можете остановить, добавив «Run Shell Script» в самый верх вашего скрипта Automator, а затем набрав в поле killall ScriptMonitor || true.

0 голосов
/ 25 апреля 2020

Иногда я считаю, что automator немного неуклюж, поэтому я предлагаю вам сделать это с помощью стандартного действия папки AppleScript. Скопируйте следующий скрипт в Script Editor.app, измените при необходимости префиксы, затем сохраните его в ~ / Library / Scripts / Folder Action Scripts.

property old_prefix : "Simulator Screen Shot - "
property new_prefix : "some text "

on adding folder items to this_folder after receiving these_items
    repeat with this_item in these_items
        set item_path to POSIX path of this_item
        tell application "System Events"
            set this_disk_item to disk item item_path
            tell this_disk_item
                if its name begins with old_prefix then
                    set its_extention to its name extension
                    set its_name to its displayed name
                    set new_file_name to new_prefix & (text ((length of old_prefix) + 1) through -1 of its_name)
                    if new_file_name ≠ its displayed name and new_file_name ≠ "" then
                        set name of this_disk_item to new_file_name & "." & its_extention
                    end if
                end if
            end tell
        end tell
    end repeat
end adding folder items to

Используйте Spotlight, чтобы открыть приложение «Настройка действий папки» добавьте свой рабочий стол как папку слева, а справа выберите и прикрепите только что сохраненный скрипт к этой папке. Это должно «просто работать».

...