Cambiar el nombre de los archivos secuencialmente desde el nombre de la carpeta con Automator

Preguntado anteriormente sobre el cambio de nombre de los archivos en una carpeta ( Rename File(s) from Foldername using automator/AppleScript ), y ahora tengo un flujo de carpetas que casi funciona.

Creé una carpeta en mis descargas llamada DOIT (según los archivos adjuntos y las capturas de pantalla del flujo de trabajo). Dejo una carpeta allí llamada "Race Track 2019" que tiene algunos nombres de archivo aleatorios.

Lo que quiero es cambiar el nombre de los archivos secuencialmente desde el nombre de la carpeta. Tengo la variable de nombre de carpeta funcionando (según las capturas de pantalla) pero no cambiará el nombre de los archivos.

Estaba buscando (en este ejemplo) quedarme con 2 archivos llamados "Race Track 2019-1 y Race Track 2019-2"

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Respuestas (2)

Uso de Automator para la acción de carpeta

En la imagen Acción de carpeta de Automator más abajo en esta respuesta, preste atención a las acciones de Automator y su configuración. En particular, las Opciones configuradas en la acción Obtener valor de variable tiene [√] Ignorar la entrada de esta acción marcada.

La primera acción , Establecer valor de variable , se establece IncomingFoldery se filtra en una acción Filtrar elementos del buscador para obtener solo la carpeta para usar una acción Ejecutar script de shell para determinar y asignarla a la variable en el conjunto . Valor de la acción Variable . nameFolderName

Debe haber una ruptura lógica entre esta acción Establecer valor de variable y la acción Obtener valor de variable subsiguiente para luego filtrar la (s) carpeta(s) ya que son los archivos los que se renombrarán, no la (s) carpeta(s) .

La imagen que se muestra más abajo en esta respuesta es de la Acción de carpeta de Automator en funcionamiento real y por qué no hay acción Obtener elementos del buscador seleccionados ni marcas de verificación de círculo verde , ya que se ejecuta en segundo plano cuando la carpeta Race Track 2019 se coloca en el Carpeta DOIT .

En mi prueba:

Race Track 2019
├── cb4d4gdc.jpg
└── nn49494.jpg

Convertirse:

Race Track 2019
├── Race Track 2019-1.jpg
└── Race Track 2019-2.jpg


Uso de un script AppleScript para la acción de carpeta

Aquí hay otro enfoque que utiliza un script AppleScript para la acción de carpeta .

Uno de sus beneficios es que puede manejar varias carpetas que se colocan al mismo tiempo en la carpeta de destino de la acción de carpeta .

Con el Editor de secuencias de comandos , guarde el código AppleScript de ejemplo en ~/Library/Scripts/Folder Action Scripts y utilice Configuración de acciones de carpeta para asignarlo a la carpeta de destino .

ingrese la descripción de la imagen aquí

Ejemplo de código AppleScript :

on adding folder items to thisFolder after receiving theseNewItems
    tell application "Finder"
        repeat with thisItem in theseNewItems
            set thisItemsProperties to properties of thisItem
            if class of thisItemsProperties is folder then
                set folderName to name of thisItemsProperties
                set theseFiles to files of entire contents of thisItem
                repeat with i from 1 to count theseFiles
                    set name of item i of theseFiles to ¬
                        folderName & "-" & i & "." & ¬
                        name extension of item i of theseFiles
                end repeat
            end if
        end repeat
    end tell
end adding folder items to

Notas:

El código AppleScript de ejemplo , tal como está codificado, asume que los archivos que se van a renombrar tienen una extensión . Si necesita actuar en archivos que no tienen una extensión , entonces el código AppleScript de ejemplo deberá modificarse para adaptarse a esa condición.



Captura de pantalla de la acción de carpeta de Automator

Nota: ¡ Esta acción de carpeta de Automator está diseñada para recibir una sola carpeta a la vez!

Si se eliminan varias carpetas, todos los archivos tendrán el nombre de la primera carpeta eliminada.

Para varias carpetas , consulte: Uso de un script AppleScript para la acción de carpeta

ingrese la descripción de la imagen aquí



Como servicio de Automator /Acción rápida para Finder

Si desea poder seleccionar carpetas en Finder y cambiar el nombre de los archivos , cree un Servicio de Automator /Acción rápida con la configuración que se muestra en la imagen del Servicio de Automator /Acción rápida a continuación, agregando una acción Ejecutar AppleScript con el código AppleScript de ejemplo .

Ejemplo de código AppleScript :

on run {input, parameters}
    
    tell application "Finder"
        repeat with thisItem in input
            set folderName to name of thisItem
            set theseFiles to files of entire contents of thisItem
            repeat with i from 1 to count theseFiles
                set name of item i of theseFiles to ¬
                    folderName & "-" & i & "." & ¬
                    name extension of item i of theseFiles
            end repeat
        end repeat
    end tell
    
end run

Notas:

El código AppleScript de ejemplo , tal como está codificado, asume que los archivos que se van a renombrar tienen una extensión . Si necesita actuar en archivos que no tienen una extensión , entonces el código AppleScript de ejemplo deberá modificarse para adaptarse a esa condición.

ingrese la descripción de la imagen aquí



Nota: El código AppleScript de ejemplo es solo eso y, sin ningún manejo de errores incluido , no contiene ningún manejo de errores adicional que pueda ser apropiado. El usuario tiene la responsabilidad de agregar cualquier manejo de errores que sea apropiado, necesario o deseado. Eche un vistazo a la declaración de prueba y la declaración de error en la Guía del lenguaje AppleScript . Consulte también Trabajar con errores . Además, el uso del comando de retardo puede ser necesario entre eventos cuando corresponda, por ejemplo , con el valor del retardo delay 0.5establecer adecuadamente.

Gracias por tomarse el tiempo para explicar, AppleScript parece mejor para mi uso, así que lo intentaré.

Dato curioso: si haces esto un poco mal en Automator, puedes terminar cambiando el nombre de todos los archivos de tu computadora. Puede que lo haya hecho más que un poco mal, pero (si alguna vez termino de reinstalar mi sistema operativo) no creo que pruebe mi teoría.

Como está escrito actualmente, su respuesta no está clara. Edite para agregar detalles adicionales que ayudarán a otros a comprender cómo esto aborda la pregunta formulada . Puede encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda .