Automator: problema con le cartelle nidificate

0

Qualcuno può spiegare come posso fare questo:

Aggiungi al menu di scelta rapida nell'elemento finder cartelle nidificate che contiene:
cartelle nidificate
 - modello uno
     - modello due
     - template tre

e ogni elemento creerà una struttura nidificata di cartelle nella directory corrente.

Quindi, se scelgo nested folders- > template one , creerà nella directory corrente la struttura nidificata delle cartelle con il modello uno.

Che cosa ho fatto?

Ho creato un nuovo servizio per Automator.
Aggiungi azione 'Crea nuova cartella'

Tutto funziona bene, ma non riesco a capire come dire a Automator di creare directory vuote annidate. Che cosa ha fatto invece Automator?
Supponiamo che scelga la cartella '/ pathToFolder / ParentFolder / SourceFolder'.
Se seleziono "Cartella" e premo "makeNewCustomFolder", Automator creerebbe una "Cartella personalizzata" come questa:

'/ pathToFolder / ParentFolder / CustomFolder' - allo stesso livello di 'SourceFolder'.

Ma anche Automator copia il contenuto di "SourceFolder" in "CustomFolder"

    
posta gaussblurinc 12.08.2013 - 12:31
fonte

1 risposta

1

Il modo di creare strutture di cartelle annidate è probabilmente AppleScript, non Automator. Non penso che Automator possa creare strutture di cartelle annidate facilmente come AppleScript.

Il seguente AppleScript crea una struttura di cartelle del modulo

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

nella cartella in primo piano nel Finder. Eccolo:

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

Ho deliberatamente cercato di mantenerlo di base. Tutta la struttura è dichiarata nel secondo blocco tell , e si spera che dovrebbe essere facile vedere come estenderlo. Se vuoi testare se prima di collegarlo a un servizio, copialo e incollalo in AppleScript Editor (nella cartella Utility).

Questo script è abbastanza ingenuo e genera un errore se le cartelle esistono già. Se questo è un caso con cui potresti lavorare, allora questa domanda su Stack Overflow spiega come modificare uno script come questo e creare solo cartelle che non esistono già.

Se vuoi creare molte cartelle con nomi simili (cartella001, cartella002, ..., cartella999), quindi questo thread del forum su Apple Insider può essere utile.

Quindi vuoi associarlo a un servizio in Automator (che vedo dalla domanda che sai come fare). Il servizio dovrebbe ricevere cartelle in Finder e puoi utilizzare l'azione Esegui AppleScript per eseguire lo script.

Una volta che hai installato quel servizio, puoi fare clic con il tasto destro su una cartella nel Finder e ci sarà un servizio che creerà questa struttura per te.

Per ottenere i diversi modelli, posso pensare a due metodi.

È possibile creare più servizi ("Crea cartelle nidificate 1", "Crea cartelle nidificate 2", ...). Ma sembra piuttosto disordinato. Ancora una volta, AppleScript è nostro amico. Possiamo creare una finestra di dialogo simile a questa:

equaleopzionescegliamodeterminaqualestrutturadicartellevienecreata.Eccoilcodicerilevante:

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

Sostituisci le righe che iniziano con -- con il codice di creazione della cartella che abbiamo discusso sopra. L'elenco nella prima riga ti fornisce un elenco di scelte e quindi crei un blocco if per ogni scelta che genera la struttura di cartelle appropriata.

Se si utilizza questo AppleScript in Automator, la procedura è esattamente la stessa, tranne che ora si ottiene la scelta quando si esegue il servizio in Finder.

    
risposta data 12.08.2013 - 15:29
fonte

Leggi altre domande sui tag