Как я могу заставить свой код AppleScript перемещать файлы?

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

Однако по той или иной причине мой код AppleScript решает не перемещать файлы .wad. Я протестировал его с файлами .jpg, и он отлично работает. Я тестировал его с файлами .epub, то же самое. Но, похоже, он не может обнаружить файлы .wad.

Ниже мой код. Он создает папку в правильном месте с именем, которое я указал в первом диалоговом окне, но не перемещает файлы .wad в новое место. В итоге я просто создаю пустую папку. Результат AppleScript дает мне, когда сценарий завершается, {}

display dialog "Set folder name" default answer ""
set foldername to (text returned of result)

display dialog "Set file type" default answer ""
set filetype to (text returned of result)

set newfolder to ((path to downloads folder as text) & foldername as text)

tell application "Finder"

    if not (exists folder ((path to downloads folder as text) & foldername as text)) then
        make new folder at (path to downloads folder) with properties {name:foldername}
    end if

    move (every file of folder (choose folder) whose name extension is filetype) to folder newfolder

end tell
Являются ли .wadфайлы отдельными файлами, а не пакетами или папками? Вы пытались проверить результат, every file of folder … whose name extension is …чтобы убедиться, что он чему-то соответствует?
Да, файлы .wad — это отдельные файлы. Это файлы программного обеспечения Wii Homebrew. Я получаю правильные результаты для файлов любого типа, кроме файлов .wad. Я протестировал этот скрипт с файлами .jpg, .epub, .zip и .7z, и все они работают нормально. Скрипт даже обнаруживает файлы .wad, у которых расширение было изменено, например, на .jpg.
Прикольно, у меня они ассоциируются с игрой Doom. Вы пробовали display dialogсо списком найденных файлов, а не с перемещением? Есть ли в списке совпадения?
Я добавил отображаемый диалоговый список (каждый файл папки (выберите папку), расширение имени которого — тип файла) перед перемещением (каждый файл папки (выберите папку), расширение имени которого — тип файла) в новую папку папки и прокомментировал строку перемещения. AppleScript выдал результат «ошибка «Finder получил ошибку: не удается преобразовать список {} в строку типа». число -1700 из списка {} в строку». Код для вывода содержимого папки неверный?

Ответы (1)

Похоже, следующая строка возвращает пустой список:

every file of folder (choose folder) whose name extension is filetype

В качестве эксперимента попробуйте другой подход к сопоставлению суффиксов:

every file of folder (choose folder) whose name ends with ".wad"

В Finder убедитесь, что .wadфайлы действительно отображают свое полное имя. Сделайте это с помощью Get Info для одного wadфайла в Finder. Маловероятно, но возможно, что истинный суффикс файла скрыт и поэтому не соответствует.

Это фактически переместило файлы .wad! Несмотря на то, что расширение файла определенно было .wad, похоже, расширение файла не обнаруживало wad. Я переписал эту строку кода с вашим предложением, добавив переменную, и, кажется, это работает! Большое спасибо!