Incolla i file su più destinazioni

0

Mi capita spesso in questa situazione ma non ho trovato una soluzione. Ho un gruppo di file CSS negli appunti che devo incollare + sostituire in diverse cartelle di destinazione. La mia struttura di cartelle è simile a

.
├── folderA_11
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
├── folderB_11
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
├── folderC_11
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
├── folderD_22
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
├── folderE_33
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
└── folderF_44
    └── CSS
         └── file1.css
         └── file2.css
         └── file3.css
etc...

C'è uno schema: voglio incollare tutte le cartelle CSS il cui contenitore termina in _11 ma non in nessuno degli altri.

Il contenuto delle cartelle di destinazione non ha importanza, ho solo bisogno di sostituirli con i nuovi file. C'è un modo semplice per incollare questi file in più destinazioni contemporaneamente? Potrebbe anche essere un flusso Automator o un comando Terminale.

    
posta Luciano 31.10.2018 - 17:11
fonte

2 risposte

2

1 - Apri Automator e crea un nuovo servizio:


2-ImpostailservizioperriceverefileecartellenelFinder:


3-Trascinaun'azione"Chiedi elementi del Finder":


4-Trascinaun'azione"Esegui AppleScript":


5-Incollaquestocodice:

onrun{input}setnumItemstocountinputsettheFiletoitem(numItems)ofinputastextsetnumItemstonumItems-1repeatwhilenumItemsisnot0tellapplication"Finder"
            duplicate file theFile to folder (item (numItems) of input as text) with replacing
            set numItems to numItems - 1
            delay 0.1
        end tell
    end repeat
    display dialog "File copied to all folders" buttons {"Thanks"} giving up after 5
end run

6 - Salva il tuo flusso di lavoro e nominalo come vuoi:

7-USAGE:Selezionatuttelecartellechevuoi,faiclicconiltastodestrodelmouse,servizi,trovailtuoflussodilavoro:

Selezionailfilechevuoicopiare(attentichelafinestrapossaesserenascostadietroquellaprincipale):

Faiclicsu"Scegli" e attendi la copia.

PS: il file sostituirà quelli esistenti con lo stesso nome.

    
risposta data 31.10.2018 - 23:31
fonte
1

Come richiesto, ecco una soluzione praticabile, come abbiamo discusso nella discussione dei commenti. Attualmente, la situazione è che si hanno più file negli Appunti che devono essere incollati in più cartelle di destinazione. Queste cartelle di destinazione sono tutte chiamate "CSS" e risiedono all'interno di una serie di cartelle genitori (nomi che terminano con "_11" ) che puoi selezionare in blocco.

Dopo aver fatto ciò, puoi eseguire il seguente servizio Automator , dal menu contestuale del tasto destro e selezionandolo in Servizi (o l'equivalente Mojave); oppure assegnandogli una scorciatoia da tastiera in Preferenze di sistema e attivando il servizio con la pressione di un tasto di scelta rapida.

Il servizio Automator in questione assomiglia a questo:

IlcodiceAppleScriptutilizzatonell'azioneRunAppleScriptèriportatodiseguito.AppleScriptleggel'elencodeifilecontenutinegliAppunti;isolalesottocartelle"CSS" in ciascuna delle cartelle padre selezionate che sono state passate nel servizio (la cartella "CSS" viene creata se non esiste già); e quindi duplica i file dagli Appunti nelle directory "CSS" .

Se gli appunti non contengono file, sentirai un segnale acustico e non verrà intrapresa alcuna azione successiva.

use framework "AppKit"

property this : a reference to current application
property NSPasteboard : a reference to NSPasteboard of this
property NSURL : a reference to NSURL of this


on run {input, parameters}
    set pb to NSPasteboard's generalPasteboard()
    set fs to (pb's readObjectsForClasses:[NSURL] options:[]) as list

    using terms from scripting additions
        -- No files on clipboard, nothing to do
        if fs = {} then return beep
    end using terms from

    tell application "Finder" to repeat with f in the input
        set css to (a reference to the folder named "CSS" in folder f)
        if not (exists css) then make new folder at f with properties ¬
            {name:"CSS"}

        duplicate fs to css with replacing
    end repeat
end run
    
risposta data 01.11.2018 - 18:11
fonte

Leggi altre domande sui tag