Как использовать, если / еще в сочетании с Automator Loop - PullRequest
0 голосов
/ 24 мая 2019

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

Логотипы передаются в папку «Входящие», рабочий процесс / сценарий изменяет рабочий стол, указывая, что система активна, захватывает первый файл, затем продолжает форматирование и распространение файла с помощью действий автоматизатора. В конце цикл возвращается к началу, пока папка «Входящие» не станет пустой.

set FileAlias to (POSIX file "/Incoming") as alias

tell application "Finder"
    count files of entire contents of FileAlias
    if the result is 0 then

        quit application "_Logos"

        launch application "Reset_Desktop"
    else

        move first item of FileAlias to (POSIX file "/Scripts")

    end if
end tell

Как вы увидите в сценарии, я прошу остановить процесс, если папка Incoming пуста. Это работает, но дополнительный шаг сброса рабочего стола не происходит. Хотя, если я начну процесс без файлов в папке для начала, рабочий стол будет сброшен.

Ответы [ 2 ]

1 голос
/ 24 мая 2019

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

Первый Applescript:

    set FileAlias to (POSIX file "/Incoming") as alias   
    tell application "Finder"
        count files of entire contents of FileAlias
        if the result is 0 then
            null
        else
        move first item of FileAlias to (POSIX file "/Scripts") 
    end if
end tell

Второй Applescript:

set FileAlias to (POSIX file "/Incoming") as alias    
tell application "Finder"       
    count files of entire contents of FileAlias
    if the result is 0 then         
        launch application "Reset_Desktop"
        quit application "Logos"        
    end if      
end tell
0 голосов
/ 24 мая 2019

Трудно понять, сработает ли мое решение для вас, потому что в моей системе нет двух приложений, на которые вы ссылались, для правильного тестирования вашего кода. Кроме того, незнание того, каковы ваши действия Automator, до и после кода AppleScript, также затрудняет точное решение вашего вопроса.

Может быть, это то, что вы ищете?

set fileAlias to (POSIX file "/Incoming") as alias

tell application "Finder"
    set fileCount to count files of entire contents of fileAlias

    repeat until fileCount is 0
        move first item of fileAlias to (POSIX file "/Scripts")
        delay 0.1
        set fileCount to fileCount - 1
        if fileCount is 0 then
            launch application "Reset_Desktop"
            quit application "_Logos"
        end if
    end repeat
end tell
...