Cancellare i file più vecchi di una data

command-prompt-glossy

A volte può essere utile eseguire diverse operazioni su una serie di file, magari all’interno di sottocartelle, un pò quello che avviene con il comando

find . –exec {} \;

in ambiente linux.

Nel caso specifico oggi avevo necessità di cancellare i file più vecchi di 30 giorni in un determinato path. Senza ricorrere a PowerShell o script Vbs ho risolto semplicemente usando il comando forfiles. Nelle vecchie versioni di Windows questo file non è presente e si trova nel Resource Kit.

Le opzioni che ho usato sono:

forfiles /p c:\backup\sql /s /d –15 /c “cmd /c del @file /f /q”

il significato dei parametri è il seguente:

  • /p indica il percorso di partenza
  • /s che il comando deve essere applicato anche alle sottocartelle
  • /d –15 prende in considerazioni solo i file modificati da più di 15 giorni
  • /c “ “ esegue il comando contenuto tra “ “ per tutti i file trovati

Per una spiegazione dettagliata di tutti i comandi vi rimando a questo articolo del Technet (Forfiles).