AppleScript se ejecuta, pero parece que no funciona

1

Tengo un libro de Excel abierto, con los nombres de los archivos antiguos en la columna A y los nombres de los archivos nuevos en la columna B. Estoy tratando de usar el applecript a continuación para cambiar el nombre de mis archivos. Se ejecuta sin errores, pero no cambia el nombre de los archivos. ¿Me estoy perdiendo de 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
    
pregunta Carlos Rivera 22.11.2017 - 05:25

1 respuesta

0

Por qué su script parece ejecutarse sin errores

Su secuencia de comandos se ejecuta sin errores porque se traga cualquier error que pueda ocurrir en la línea do shell script .

Eliminar temporalmente las líneas try y end try circundantes para desactivar el silencio de los errores. Es probable que esto provoque un mensaje de error que finaliza con No existe dicho archivo o directorio.

Por qué su script no cambia el nombre de los archivos

El problema es que su secuencia de comandos entrega el valor de theDirectory directamente al comando de shell sin citarlo. Debido a que ese valor contiene espacios, el shell interpreta la parte directory & […] theItem como dos argumentos separados, lo que hace que mv falle.

Solución

En la línea do shell script , reemplaza ambas apariciones de

  

theDirectory

con:

  

quoted form of theDirectory

(Opcional) Haciendo su script más robusto

Además, le sugiero que pierda el try / end try que lo rodea, o bien inserte una declaración on error para manejar los posibles errores que pueden ocurrir en la parte do shell script .

Escribir guiones que no traguen errores significa que a la larga ahorrarás tiempo.

    
respondido por el Synoli 22.11.2017 - 08:51

Lea otras preguntas en las etiquetas