12070 Letture
Eliminare file più vecchi di una certa data

Eliminare file più vecchi di una certa data

Come cancellare in Windows i file più vecchi di un certo numero di giorni o antecedenti una data specifica, anche su base programmatica.

Windows 10 integra una funzionalità chiamata Sensore memoria che si occupa, tra l'altro, di eliminare i file più vecchi contenuti nel Cestino e nella cartella di sistema Download. Sulla scorta delle lamentele di diversi utenti, a breve Sensore memoria non cancellerà più in automatico i file più datati presenti in Download: Evitare che Windows 10 cancelli i file contenuti nella cartella Download.
Sensore memoria e Pulizia disco, disponibile anche nelle precedenti versioni di Windows, restano comunque strumenti eccellenti per recuperare spazio: Windows 10 Aggiornamento di novembre 2019: recuperare spazio dopo l'installazione.

Indipendentemente dalla versione di Windows utilizzata, si può ricorrere all'utilità ForFiles integrata nel sistema operativo per richiedere la cancellazione automatica dei file più vecchi di una certa data.
ForFiles funziona da riga di comando e si rivela particolarmente utile per effettuare modifiche su un ampio numero di file, tutti quelli che rispondono a determinati criteri.


La sintassi prevista per il comando ForFiles è la seguente:

ForFiles /p percorso /m criteri_ricerca [/s] [/c "comando"] [/d [{+-}][{data|giorni}]]

Al posto di percorso si può specificare la cartella sulla quale intervenire mentre criteri_ricerca può essere sostituito con una direttiva che specifica la tipologia di file da gestire (ad esempio *.docx).
L'opzione /s permette di intervenire anche sul contenuto delle sottocartelle; /c di eseguire il comando racchiuso tra doppi apici.
Infine, /d consente di specificare una data o un numero di giorni: solo i file più vecchi della data indicata saranno interessati dall'attività richiesta con ForFiles.

Per cancellare i file più vecchi di 60 giorni dalla cartella specificata, basterà impartire il comando seguente:

ForFiles /p "X:\percorso" /s /c "cmd /c del @file /f /q" /d -60

Il comando consentirà l'eliminazione di tutti i file più vecchi di due mesi, compresi quelli con l'attributo di sola lettura, senza richiedere in nessun caso alcuna conferma all'utente.

Un comando come il seguente consente di eliminare soltanto i file prodotti nella giornata odierna:

ForFiles /p "X:\percorso" /s /c "cmd /c del @file /f /q" /d 0

Per evitare di fare danni, si può sostituire semplicemente il riferimento al comando del con echo. In questo modo si otterrà la lista dei file che saranno eliminati perché più vecchi della data indicata:

ForFiles /p "X:\percorso" /s /c "cmd /c echo @path @file" /d -60

Eliminare file più vecchi di una certa data

Al posto di /d -60 è possibile indicare una data specifica nel formato gg/mm/aaaa.

Come nota finale, è importante osservare che l'utilità ForFiles non supporta i percorsi di rete: per intervenire sui file conservati all'interno di cartelle condivise in LAN, è necessario associarvi prima una lettera identificativa di unità.
Dal prompt dei comandi di Windows basta usare net use X: \\percorso_di_rete aggiungendo eventualmente password e user:nome_utente.


Scrivendo Utilità di pianificazione nella casella di ricerca di Windows, creando una nuova attività e configurando opportunamente quanto nella scheda Azioni, si potrà richiedere la cancellazione periodica dei file più vecchi nella cartella indicata.

Eliminare file più vecchi di una certa data

Per richiamare direttamente l'utilità, basterà digitare ForFiles nella casella Programma o script quindi indicare tutto ciò che segue nella casella Argomento.
In alternativa, soprattutto se si dovesse agire su un percorso di rete, basterà creare un file batch (.bat) indicandone quindi il percorso nella casella Programma o script.

Eliminare file più vecchi di una certa data

Ricorrendo alla scheda Attivazione, si può indicare la periodicità con la quale si desidera fare pulizia della cartella specificata.


Eliminare file più vecchi di una certa data