1 votos

Renombrar archivos secuencialmente a partir del nombre de la carpeta con Automator

Preguntado anteriormente sobre el cambio de nombre de los archivos en una carpeta ( Renombrar archivo(s) desde Foldername usando automator/AppleScript ), y ahora tengo un flujo de carpetas que casi funciona.

He creado 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 archivos al azar.

Lo que quiero es renombrar los archivos secuencialmente a partir del nombre de la carpeta. Tengo la variable del nombre de la carpeta funcionando (según las capturas de pantalla) pero no renombra los archivos.

Lo que buscaba (en este ejemplo) era quedarme con 2 archivos llamados "Race Track 2019-1 y Race Track 2019-2"

enter image description here enter image description here

4voto

user3439894 Puntos 5883

Uso de Automator para la Acción de Carpeta

En el Automatizador Carpeta Acción imagen más abajo en esta respuesta, preste atención a la Automatizador acciones y su configuración. En particular, el Opciones establecido en el Obtener el valor de la variable acción tiene [] Ignorar la entrada de esta acción revisado.

La primera acción , Establecer el valor de la variable se fija en IncomingFolder y se filtra en un Filtrar elementos del buscador acción para obtener sólo el carpeta para utilizar un Ejecutar Shell script acción para determinar su name y asignarlo al FolderName variable en el Establecer el valor de la variable acción .

Es necesario que haya una ruptura lógica entre este Establecer el valor de la variable acción y el consiguiente Obtener el valor de la variable acción para luego filtrar los carpeta(s) ya que es el archivos que será renombrado, no el carpeta(s) .

La imagen que se muestra más abajo en esta respuesta es del funcionamiento real Automatizador Carpeta Acción y por qué no hay Obtenga los artículos seleccionados del buscador acción ni y marcas de verificación del círculo verde como se ejecuta en el fondo cuando el Pista de carreras 2019 carpeta se deja caer en el DOIT carpeta.

En mis pruebas:

Race Track 2019
 cb4d4gdc.jpg
 nn49494.jpg

Se convirtió:

Race Track 2019
 Race Track 2019-1.jpg
 Race Track 2019-2.jpg

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

Este es otro enfoque que utiliza un AppleScript script para el Carpeta Acción .

Una de sus ventajas es que puede manejar múltiples carpetas que se lanzan al mismo tiempo en el objetivo carpeta de la Carpeta Acción .

Utilizando script Editor , guardar el ejemplo AppleScript código a ~/Library/scripts/Folder Action scripts y utilizar Configuración de la acción de la carpeta para asignarlo al objetivo carpeta .

enter image description here

Ejemplo AppleScript código :

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 ejemplo AppleScript código , tal y como está codificado, supone archivos para ser renombrados tienen un extensión . Si necesita actuar sobre archivos no tener un extensión entonces el ejemplo AppleScript código tendrá que ser modificado para adaptarse a esa condición.


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

Nota: Este Automatizador Carpeta Acción está diseñado para recibir un único carpeta ¡a la vez!

Dejar caer varios carpetas dará lugar a que todos los archivos teniendo la nombre de la primera carpeta ¡se ha caído!

Para múltiples carpetas ver: Uso de un AppleScript script para la acción de carpeta

enter image description here


Como Automatizador Servicio/Acción Rápida para Finder

Si desea poder seleccionar carpetas en Buscador y tener la archivos dentro de renombrado, entonces crea un Automatizador Servicio/Acción Rápida con la configuración que se muestra en la imagen del Automatizador Servicio/Acción Rápida abajo, añadiendo un Ejecutar AppleScript acción con el ejemplo AppleScript código .

Ejemplo AppleScript código :

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 ejemplo AppleScript código , tal y como está codificado, supone archivos para ser renombrados tienen un extensión . Si necesita actuar sobre archivos no tener un extensión entonces el ejemplo AppleScript código tendrá que ser modificado para adaptarse a esa condición.

enter image description here


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>pruebe con </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

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