11 novembre 2011

[Windows] Eliminare file più vecchi di X giorni

Un semplice comando dos per eliminare tutti i file più vecchi di X giorni da una determinata cartella. Ho preparato questo comando per eliminare da un server di posta Merak tutte le email più vecchie di una certa data:
Forfiles -p percorso -s -m *.* -d -X -c "cmd /c del /q @path"
dove X è la data e percorso è il path dove cercare i file, es.:
Forfiles -p F:\mbox -s -m *.* -d -05/31/2011 -c "cmd /c del /q @path"
Questo comando elimina tutti i file precedenti al 1 giugno 2011 dalla directory "F:\mbox" Prima di far partire lo script possiamo eseguire una versione leggermente modificata per elencare tutti i file che andremo a cancellare:
Forfiles -p percorso -s -m *.* -d -X -c "Cmd /C Echo 0x22@Path"
Eventualmente possiamo anche impostare dei filtri sull'estensione o sul nome del file (con il parametro -m, nell'esempio ho messo tutti i file *.*). Spiego nel dettaglio il comando: Forfiles -> utility per ciclare tutti i file (-? per l'help molto dettagliato e con esempi) -p percorso -> imposta il percorso -s -> cerca anche nelle sottocartelle -m -> filtro sul nome o sull'estensione dei files -d -X -> imposta il numero di giorni di "anzianità" dei files su cui eseguire il comando (-150 vuol dire 150 giorni indietro, è anche possibile mettere direttamente una data nel formato MM/dd/yyyy es. -d -06/25/2011 oppure tutti i file successivi a quella data -d +07/04/2011) -c -> comando da eseguire P.S. Il comando forfiles è presente solo nelle versioni server di windows in quanto è un'utility per gli amministratori di sistema, potete comunque scaricarlo da quì

Nessun commento:

Posta un commento