¿Cómo puedo obtener mi código AppleScript para mover archivos?

Habiendo usado Automator para organizar archivos por extensión de archivo antes, decidí crear una aplicación AppleScript que me evitará tener que cambiar los parámetros manualmente, ya que Automator no me permite establecer una variable para la acción "Filtrar elementos del buscador".

Sin embargo, por alguna razón u otra, mi código AppleScript decide no mover realmente los archivos .wad. Lo he probado con archivos .jpg y funciona perfectamente. Lo he probado con archivos .epub, lo mismo. Pero no parece ser capaz de detectar archivos .wad.

A continuación se muestra mi código. Crea la carpeta en la ubicación correcta con el nombre que puse en el primer cuadro de diálogo, pero no mueve los archivos .wad a la nueva ubicación. Termino simplemente creando una carpeta en blanco. El resultado que AppleScript me da cuando termina el script es {}

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
¿Los archivos son .wadarchivos individuales y no paquetes o carpetas? ¿Ha intentado examinar el resultado de every file of folder … whose name extension is …para asegurarse de que coincida con algo?
Los archivos .wad son archivos individuales, sí. Son archivos de software Wii Homebrew. Obtengo resultados correctos para cualquier tipo de archivo que no sean archivos .wad. He probado este script con archivos .jpg, archivos .epub, archivos .zip y archivos .7z y todos funcionan bien. El script incluso detecta archivos .wad que han cambiado la extensión a .jpg, por ejemplo.
Divertido, los asocio con el juego Doom. ¿Ha intentado display dialogcon la lista de archivos encontrados, en lugar de mover? ¿La lista contiene coincidencias?
Agregué la lista de diálogo de visualización (cada archivo de la carpeta (elegir carpeta) cuya extensión de nombre es tipo de archivo) antes del movimiento (cada archivo de la carpeta (elegir carpeta) cuya extensión de nombre es tipo de archivo) a la carpeta nueva carpeta y comenté la línea de movimiento. AppleScript dio el resultado "error" Finder obtuvo un error: no se puede convertir la lista {} en una cadena de tipo." número -1700 de la lista {} a la cadena". ¿Es incorrecto el código para enumerar el contenido de la carpeta?

Respuestas (1)

Parece que la siguiente línea está devolviendo una lista vacía:

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

Como experimento, pruebe con un enfoque diferente de coincidencia de sufijos:

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

En el Finder, asegúrese de que los .wadarchivos muestren su nombre completo. Haga esto con Obtener información sobre un wadarchivo en el Finder. Es poco probable pero posible que el verdadero sufijo del archivo esté oculto y, por lo tanto, no coincida.

¡Eso realmente movió los archivos .wad! A pesar de que la extensión del archivo definitivamente es .wad, parece que la extensión del archivo no estaba detectando tacos. He reescrito esa línea de código con su sugerencia, agregando la variable, ¡y parece funcionar! ¡Muchas gracias!