1 votos

AppleScript se ejecuta, pero no parece funcionar

Tengo un libro de excel abierto, con los viejos nombres de archivo en la columna a y los nuevos nombres de archivo en la columna B. estoy intentando utilizar el applescript abajo para cambiar el nombre de los archivos de mi. Se ejecuta sin errores, pero no cambiar el nombre de los archivos. Me estoy perdiendo algo? Cualquier ayuda es muy apreciada.

set theDirectory to "/Users/admin/Desktop/test/copied images"
tell application "Microsoft Excel"
    tell active sheet
        tell used range
            set rc to count of rows
        end tell
        set theList to get value of range ("A1:B" & rc) as list
        repeat with theItem in theList
            try
                do shell script "mv " & theDirectory & "/" & quoted form of item 1 of     theItem & space & theDirectory & "/" & quoted form of item 2 of theItem
            end try
        end repeat
    end tell
end tell

0voto

user91500 Puntos 6355

¿Por qué el script parece funcionar sin errores

El script se ejecuta sin errores porque no se traga cualquier error que pueda ocurrir en la do shell script línea.

Eliminar temporalmente los alrededores try y end try líneas para desactivar los errores. Esto probablemente conducirá a un mensaje de error que termina con el archivo o directorio No existe.

¿Por qué el script no cambiar el nombre de archivos

El problema es que el script manos el valor de theDirectory directamente al comando de la shell sin citarlo. Debido a que el valor contiene espacios, el shell interpreta el directory &[...]theItem parte como dos argumentos separados, lo que provoca mv a fallar.

Solución

En la do shell script línea, sustituya las dos apariciones de

theDirectory

con:

quoted form of theDirectory

(Opcional) Haciendo que su guión más sólido

Además, yo sugiero que usted puede perder los alrededores try/end try en conjunto, o, alternativamente, insertar un on error instrucción para manejar los posibles errores que se pueden producir en la do shell script parte.

La escritura de secuencias de comandos que no tragar errores significa que ahorrará tiempo en el largo plazo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X