Eliminar el nombre de la carpeta del nombre del archivo según el Apple Script existente

2

así que tengo este script de Apple aquí que usé para insertar el nombre de la carpeta en la parte frontal de todos los archivos de la carpeta. La secuencia de comandos puede ejecutarse en cada carpeta y apuntar a todos los archivos y ha demostrado ser muy útil

    set the_folder to (choose folder)
renamefilesinside(the_folder)

on renamefilesinside(next_folder)
    tell application "Finder"
        set folder_name to name of next_folder & " "
        set folder_contents to every item of next_folder
        repeat with each_item in folder_contents
            if kind of each_item is "folder" then
                my renamefilesinside(each_item)
            else
                set name of each_item to folder_name & " " & name of each_item
            end if
        end repeat
    end tell
end renamefilesinside

Fuente: enlace

Sin embargo, ahora he eliminado una parte de los nombres de carpeta y me gustaría que se aplicara un efecto sustractivo a los archivos, por lo que la secuencia de comandos tomará los archivos, buscará el nombre de la carpeta principal y eliminará los caracteres compartidos.

Lamentablemente, sé muy poco acerca de los scripts de Apple, así que espero que este sea un ajuste fácil que alguien pueda hacer aquí.

¡Gracias por cualquier ayuda que puedas dar!

    
pregunta shaunxer 08.10.2015 - 23:31

1 respuesta

1

Puede obtener el nombre del archivo, luego establecer el delimitador del elemento de texto en el nombre de la carpeta contenedora, luego colocar los elementos del texto del nombre del archivo en una lista, que ignorará el delimitador (el nombre de la carpeta), luego restablecer el texto el delimitador del elemento para "" vaciar y coaccionar el nombre a una cadena. Este es un truco muy común de Apple.

set the_folder to (choose folder)
renamefilesinside(the_folder)

on renamefilesinside(next_folder)
    tell application "Finder"
        set folder_name to name of next_folder
        set folder_contents to every item of next_folder
        repeat with each_item in folder_contents
            if kind of each_item is "folder" then
                my renamefilesinside(each_item)
            else
                set n to name of each_item
                set AppleScript's text item delimiters to folder_name
                set n to text items of n
                set AppleScript's text item delimiters to ""
                set n to n as string
                set name of each_item to n
            end if
        end repeat
    end tell
end renamefilesinside
    
respondido por el jweaks 11.10.2015 - 07:01

Lea otras preguntas en las etiquetas