Automator: Problema con carpetas anidadas

0

¿Alguien puede explicar cómo puedo hacer esto?

Agregar al menú contextual en el elemento del buscador carpetas anidadas que contiene de:
carpetas anidadas
 - plantilla uno
     - plantilla dos
     - plantilla tres

y cada elemento creará una estructura de carpeta anidada en el directorio actual.

Por lo tanto, si elijo en carpetas anidadas- > plantilla uno , se creará en el directorio actual la estructura de carpetas anidadas con la plantilla uno.

¿Qué hice?

Hice un nuevo servicio para Automator.
Agregar acción 'Crear nueva carpeta'

Todo funciona bien, pero no entiendo cómo decirle a Automator que cree directorios vacíos anidados. ¿Qué hizo Automator en cambio?
Supongamos que elijo la carpeta '/ pathToFolder / ParentFolder / SourceFolder'.
Si selecciono 'Carpeta' y presiono 'makeNewCustomFolder', Automator crearía un 'CustomFolder' como este:

'/ pathToFolder / ParentFolder / CustomFolder' - en el mismo nivel de 'SourceFolder'.

Pero también Automator copia el contenido de 'SourceFolder' en 'CustomFolder'

    
pregunta gaussblurinc 12.08.2013 - 12:31

1 respuesta

1

La forma de crear estructuras de carpetas anidadas es probablemente AppleScript, no Automator. No creo que Automator pueda crear estructuras de carpetas anidadas tan fácilmente como AppleScript.

El siguiente AppleScript crea una estructura de carpetas del formulario

- My first folder
  - A folder within my first folder
    - Another folder within both of those

dentro de la carpeta frontal en Finder. Aquí está:

try
  tell application "Finder" to set FOLDER0 to (folder of the front window as alias)
end try

tell application "Finder"
  set folder1 to make new folder at FOLDER0 with properties {name:"My first folder"}
  set folder2 to make new folder at folder1 with properties {name:"A folder within my first folder"}
  set folder3 to make new folder at folder2 with properties {name:"Another folder within both of those"}
end tell

Intenté deliberadamente mantenerlo básico. Toda la estructura se declara en el segundo bloque tell , y esperamos que sea fácil ver cómo extenderlo. Si desea probar si antes de adjuntarlo a un servicio, cópielo y péguelo en AppleScript Editor (en la carpeta Utilidades).

Este script es bastante ingenuo y arroja un error si las carpetas ya existen. Si ese es un caso con el que podría estar trabajando, entonces esta pregunta en Stack Overflow explica cómo modificar una secuencia de comandos como esta y solo crea carpetas que no existen.

Si desea crear muchas carpetas con nombres similares (folder001, folder002, ..., folder999), entonces este hilo del foro en Apple Insider puede ser útil.

A continuación, desea vincular esto a un servicio en Automator (que veo en la pregunta que sabe cómo hacerlo). El servicio debería recibir carpetas en Finder , y utiliza la acción Ejecutar AppleScript para ejecutar el script.

Una vez que hayas instalado ese servicio, puedes hacer clic derecho en una carpeta en el Finder, y habrá un servicio que creará esta estructura para ti.

Para obtener las diferentes plantillas, puedo pensar en dos métodos.

Puedes crear múltiples servicios ("Crear carpetas anidadas 1", "Crear carpetas anidadas 2", ...). Pero eso parece bastante desordenado. Una vez más, AppleScript es nuestro amigo. Podemos hacer que aparezca un diálogo con este aspecto:

ylaopciónqueelegimosdeterminaquéestructuradecarpetassecrea.Aquíestáelcódigorelevante:

setchoicetochoosefromlist{"template1", "template2", "template3"}

try
  tell application "Finder" to set FOLDER0 to (folder of the front window as alias)
end try

if choice is "template1" then
  -- create some folders
end if

if choice is "template2" then
  -- create some different folders
end if

if choice is "template3" then
  -- create a third set of folders
end if

Reemplace las líneas que comienzan con -- con la carpeta que genera el código que mencionamos anteriormente. La lista en la primera línea le da una lista de opciones, y luego crea un bloque if para cada opción que genere la estructura de carpetas adecuada.

Si usa este AppleScript en Automator, entonces el procedimiento es exactamente el mismo, excepto que ahora tiene la opción cuando ejecuta el servicio en el Finder.

    
respondido por el alexwlchan 12.08.2013 - 15:29

Lea otras preguntas en las etiquetas