2 votos

¿Puedo usar AppleScript para eliminar archivos en NAS que figuran en un archivo?

Estoy limpiando mis carpetas de iTunes. Me di cuenta de que hay más de 3k de archivos que en realidad no están en iTunes. Los identifiqué y los tengo todos dentro de un archivo de texto llamado "untitled.txt" en el formato a continuación.

 /Volumes/Multimedia/Music/ITunes Media/Kiko/Come On Up/Come On Up.mp3
/Volumes/Multimedia/Music/ITunes Media/Kiko/Traxxxx/Traxxxx.mp3
 

Los archivos se encuentran en mi NAS, así que mi pregunta sería cómo se vería el script y leerá el formato del archivo NAS (creo que es ext4 ).

3voto

user3439894 Puntos 5883

Como una alternativa al uso de AppleScript, es mucho más fácil hacerlo en la Terminal usando bash, por ejemplo:

while IFS= read -r line; do echo rm "$line"; done < /path/to/untitled.txt

Ejecutar como está, con la echo comando para tener un look1 en su salida, y si se ven bien, a continuación, ejecute el comando de nuevo sin echo en ella.

Tenga en cuenta que cuando se ejecute sin la echo comando, la ruta de acceso de nombres de archivo será citado, así que mientras con echo comando mostrará como por ejemplo:

rm /Volumes/Multimedia/Music/ITunes Media/Kiko/Come On Up/Come On Up.mp3

Sin embargo, sin la echo comando, el rm comando con la ruta de acceso de nombres de archivo se ejecute como por ejemplo:

rm "/Volumes/Multimedia/Music/ITunes Media/Kiko/Come On Up/Come On Up.mp3"

Por lo tanto el manejo de ruta de acceso de nombres de archivo , que contiene espacios.


1Sugerencia: Ampliar la ventana de Terminal para ver la línea completa sin envolver en la pantalla ya que esto hará que sea más fácil para ver todas las anomalías, si las hubiere.

3voto

wch1zpink Puntos 11

Sin embargo, si prefiere utilizar una solución de AppleScript , este código de AppleScript siguiente debería hacer el truco.

Este código AppleScript funciona para mí con la última versión de macOS Mojave.

 set filePathsTextFile to "/path/to/untitled.txt"

set posixFiles to readFile(filePathsTextFile)

tell application "Finder"
    repeat with i in posixFiles
        try
            set thisItem to i as POSIX file as alias
            delete thisItem
        on error errMsg number errNum
            activate
            display alert "Cannot Locate File To Be Deleted" message ¬
                errMsg & "  Error Code. " & errNum & linefeed & linefeed ¬
                & "Please Make Sure The Volume Containing File To Be Deleted Is Mounted Or File Exists" as ¬
                critical buttons {"OK"} giving up after 10
            return
        end try
    end repeat
end tell

on readFile(filePathsTextFile)
    set theFile to filePathsTextFile
    set theParagraphs to read theFile as text using delimiter linefeed
end readFile
 

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