1

Я пишу AppleScript, чтобы посмотреть папку для завершенных загрузок, а затем обработать их. Если я загружаю файл, разделенный по частичным RAR (.r01, .r02, ... Боже, я ненавижу их), они будут случайным образом попадать в папку «Завершено» по завершении. Сценарий будет запускаться каждый раз, когда один из них будет завершен, но я не хочу, чтобы он автоматически разархивировался, пока все они не будут выполнены.

Итак, вот мое решение. В сценарии, когда я обнаруживаю RAR, я сначала проверяю его на полноту:

do shell script ("unrar v " & theItem)

Оболочка будет выплевывать, помимо прочего, это:

… Архив тестирования thefile.r19 96%… архив тестирования thefile.r20 99%… Расчет контрольных сумм всех объемов. Не удается найти том thefile.r21… thefile.avi - сбой CRC Всего ошибок: 1

Я новичок в AppleScript. Какой самый эффективный способ отсканировать это и определить, не прошла ли проверка?

(В качестве альтернативы, unrar v занимает много времени; есть ли лучший способ решения этой проблемы?)

1 ответ1

1

Если вы измените свой код на:

 set output to do shell script ("unrar v " & theItem)

Переменная output будет содержать выходные данные сценария оболочки, которые вы можете использовать для сравнения с тем, что вы ожидаете для корректного вывода.

if output contains "CRC Failed" then
    return
end if

Чтобы избежать необходимости запуска unrar v вы можете выполнить проверку расширения файла (либо когда вы устанавливаете theItem в AppleScript, либо, возможно, любым другим способом, который вы используете для мониторинга папки - если вы вручную выполнили запущенное задание, а не Папка Действия)

Для получения дополнительной информации о do shell script ознакомьтесь с Технической запиской Apple 2065.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .