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 .
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
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.
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.