A volte capitano lavori da fare che nell’interfaccia grafica di Windows richiederebbero molto tempo e diverse operazioni manuali mentre da riga di comando si risolvono molto più velocemente e con una manciata di istruzioni, uno di questi casi è quando dobbiamo riunire tutti i files sparsi in varie cartelle e sotto cartelle del file system in un unica cartella che li contenga tutti.
E’ il caso tipico di quando vi trovate a dover operare su molti files sparsi in decine o centinaia di sottocartelle ma che volete avere raggruppati in un unico percorso per farci poi ulteriori elaborazioni, in pratica si parte da una struttura come questa :
per avere poi invece solo una nuova cartella che contenga tutti i files che avevamo nelle varie sottocartelle, il risultato quindi sarà :
Nel nostro caso specifico si trattava di un percorso locale sul disco C: che conteneva un archivio di documenti strutturato in una cartella principale (C:\ARCHIVIO) che a sua volta conteneva una cartella per ogni anno di archiviazione (es. 2018) e all’interno di ogni anno i files erano ulteriormente suddivisi per mese (espresso come numero, es. per Gennaio avevamo 01), la struttura su disco era quindi come questa :
Le operazioni per copiare tutti i files in un’unica nuova cartella (C:\TUTTO\) sono state queste :
- aprire il prompt dei comandi con
start -> esegui -> cmd - digitare :
cd \ - quindi creare la nuova cartella con il comando :
md TUTTO - entrare nella cartella principale della struttura da copiare digitando :
cd \ARCHIVIO\ - copiare tutti i files presenti nella cartella Archivio e nelle sottocartelle nella nuova cartella Tutto con il comando :
for /r %d in (*) do copy “%d” “C:\TUTTO\”
Ecco fatto !, in pochi secondi ci troveremo la cartella C:\TUTTO popolata con una copia di tutti i files che erano presenti nella nostra struttura di cartelle e sottocartelle C:\ARCHIVIO, come vedete l’operazione è banale e velocissima, se avessimo dovuto farla manualmente dall’interfaccia grafica di Explorer avremmo perso molto tempo.
NOTA : se nel vostro caso ci sono files duplicati (con lo stesso nome) in più sottocartelle e vi interessa una sola copia di ogni file modificate l’ultimo comando aggiungendo il parametro /y che permette la sovrascrittura di un file esistente senza chiedevi conferma, il comando da usare diventerà :
for /r %d in (*) do copy /y “%d” “C:\TUTTO\”