1 votos

Eliminar archivos con Apple script

Mi cámara de fotos permite guardar las fotos en RAW y JPG en paralelo. Me resulta cómodo porque en mi Mac puedo examinar rápidamente los JPG y eliminar los "malos". Además, guardo los archivos RAW de los JPG "buenos" por si necesito hacer alguna edición profunda.

Me gustaría escribir un AppleScript que borre todos los RAWs "malos" (archivos RAW que ya no tienen su correspondiente JPG). Todos los archivos están en el mismo directorio.

Este es mi esquema (¡lejos de la sintaxis correcta!):

He copiado un Testscript que debería autoborrar las fotos en RAW como AppleScript. Este script debe coincidir, si existe un jpeg correspondiente, y debe eliminar todos los archivos RAW, donde este no es el caso.

set source_folder to choose folder with prompt "Please select directory."
tell application "Finder"
    set rawFiles to every file of source_folder whose name extension is "raw"
    repeat with aFile in rawFiles
        set baseName to text 1 thru -5 of (get name of aFile)
        set jpgFile to baseName & ".jpg"
        if not (exists file jpgFile of source_folder) then delete aFile
    end repeat
end tell

Sin embargo, no funciona; todos los archivos se borran siempre.

1voto

Tetsujin Puntos 23061

Si, como sugieren los comentarios, tienes dos extensiones para los archivos JPG [jpg & jpeg], entonces la solución hacky es cambiar el nombre de una a la otra. [Su script tal y como está funciona cuando hay pares 'correctos' o no de "jpg" & "raw"].

set source_folder to choose folder with prompt "Please select directory."
tell application "Finder"
    set fixJpg to every file of source_folder whose name extension is "jpeg"
    repeat with myFile in fixJpg
        set name extension of myFile to "jpg"
    end repeat
    set rawFiles to every file of source_folder whose name extension is "raw"
    repeat with aFile in rawFiles
        set baseName to text 1 thru -5 of (get name of aFile)
        set jpgFile to baseName & ".jpg"
        if not (exists file jpgFile of source_folder) then delete aFile
    end repeat
end tell

Esto convierte todos los archivos "jpeg" en "jpg" y luego los maneja de su manera original, borrando los archivos RAW sin el correspondiente JPG. Probablemente hay una mejor manera de hacer esto, pero esta funciona.

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