Come automatizzare la ridenominazione di un file in base alla sua cartella principale?

2

Ho svolto molte ricerche e non riesco a trovare una soluzione semplice per rinominare un file tramite la cartella principale.

Fondamentalmente sto comprimendo un sacco di file da un file manager online e li ricevo in una struttura ridicola. (vedi sotto) la prima colonna è la cartella genitrice estratta che si autodefinisce dopo l'ultima cartella nel set quando lo zip. La seconda colonna è i numeri di ordine effettivi per ciascun ordine. La terza colonna è quella che sembra essere una cartella con nomi casuali, ognuno dei quali contiene un file caricato da un cliente. Quindi, ogni file caricato da un cliente per un ordine viene inserito in una cartella con un nome casuale, quindi nella cartella del numero dell'ordine.

Vorrei creare un'app o un servizio con Apple Automator per rinominare i file del cliente in questo modo (e sbarazzarsi di tutte le sottocartelle) lasciandoli tutti nella cartella principale denominata in sequenza.

3587915_1.PDF
3587915_2.PDF
3587915_3.PDF
3587915_4.PDF
3587933_1.PDF
3587933_2.PDF

qualche aiuto / insight?

    
posta Becky Piscitelli 06.04.2016 - 23:38
fonte

1 risposta

3

Puoi farlo con un AppleScript. Utilizzare lo Script Editor nella cartella Utilities. Ecco una sceneggiatura che ho scritto per te proprio ora. Funziona su una cartella alla volta, non sulla cartella di primo livello, ma quella dell'esempio è 3587915.

Quando esegui questo script ti chiede di scegliere una cartella. In questo esempio devi aprire 3587915 e quindi fare clic su "Scegli". Molto importante: non scegliere il 3589919. Stiamo lavorando solo su una cartella alla volta qui. Se questo funziona per te, possiamo espandere il ciclo delle cartelle nella cartella di primo livello.

tell application "Finder"
    set the_folder to choose folder
    set the_folder_name to name of the_folder
    set the_subfolders to every folder in the_folder
    repeat with I from 1 to count of the_subfolders
        set name of every file of item I of the_subfolders to the_folder_name & "_" & I & ".pdf"
        move every file of item I of the_subfolders to the_folder
    end repeat
    --
    -- optionally delete the subfolders
    delete every folder in the_folder -- put two dashes in front of this line to comment it out
end tell

Qui ci sono schermate che ti mostrano come funziona. Dovresti esercitarti su una serie di cartelle che non hanno importanza all'inizio. Puoi vedere il mio set up iniziale nella prima immagine e il risultato nel secondo. Le didascalie sulle immagini non vengono visualizzate (per me), quindi ecco cosa dovrebbero essere:

Immagine 1: Servizio Automator, con AppleScript leggermente modificato.

Immagine 2: folder_1, folder_2, folder_3, folder_4 e folder_5 hanno ciascuno un singolo pdf. Solo i contenuti di folder_1 sono mostrati qui.

Immagine 3: questo è il risultato. Le sottocartelle sono sparite. I file prendono il nome dalla cartella principale.

Puoi salvare lo script come app. Oppure, è possibile eseguire lo script in un passaggio in Automator poiché Automator può eseguire un AppleScript. Questo è nella sezione Utilità di Automator, "Esegui AppleScript". Includerei una foto ma sono nuovo qui e ho solo due foto fino a quando non sono aggiornato.

Se vuoi farlo con un servizio, usi quasi lo stesso script, ma devi passare la cartella cliccata dal controllo. Anziché utilizzare il passo AppleScript "Scegli cartella", comunichi al servizio Automator di "ricevere la cartella selezionata nel Finder" e imposti "la cartella" all'elemento 1 dell'input. Guarda la prima immagine. Funziona come un campione qui!

    
risposta data 07.04.2016 - 17:38
fonte

Leggi altre domande sui tag