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 e Windows 11 integrano una funzione chiamata Sensore memoria che si occupa, tra l’altro, di eliminare i file più vecchi contenuti nel Cestino e nella cartella di sistema Download.

Per accedere alla funzione basta digitare sensore memoria nella casella di ricerca di Windows quindi scegliere Attiva il sensore di memoria.
Con un clic su Configura sensore memoria o eseguilo ora è possibile scegliere dopo quanto tempo Windows deve eliminare gli elementi che stazionano nel Cestino di Windows oppure che vengono via via memorizzati nella cartella Download. Per impostazione predefinita, diversamente da quello che avveniva un tempo, Sensore memoria non elimina più in automatico i file più datati presenti nella cartella Download: l’impostazione Elimina dalla cartella Download i file che non sono stati aperti per più di… è infatti posta su Mai.
Sensore memoria e Pulizia disco, disponibile anche nelle precedenti versioni di Windows, restano comunque strumenti eccellenti per recuperare spazio.

Cancellare i file più vecchi di una certa data

Indipendentemente dalla versione di Windows utilizzata, si può ricorrere al comando ForFiles del 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 ovvero su 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 [{+-}][{datagiorni}]]

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 lavorare 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 dell’operazione richiesta al comando ForFiles.

Per cancellare i file più vecchi di 60 giorni rimuovendoli definitivamente dalla cartella specificata, basta impartire il comando seguente:

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

Il comando provvede a eliminare tutti i file più vecchi di due mesi, compresi quelli con l’attributo di sola lettura, senza richiedere alcuna conferma all’utente.

Un comando come il seguente consente di eliminare soltanto i file prodotti nella giornata odierna (si noti l’utilizzo dello switch /d 0):

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

Per evitare di fare danni, si può sostituire il riferimento al comando del con echo. In questo modo si ottiene la lista dei file più vecchi della data indicata:

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

Successivamente si potrà valutare se eliminarli usando il comando visto in precedenza.
Al posto di /d -60 è possibile indicare una data specifica nel formato gg/mm/aaaa.

Il comando seguente permette di estrarre l’elenco dei file più vecchi di 120 giorni contenuti nella cartella D:\Download che hanno dimensioni pari o superiori a 10 MB:

ForFiles /p "D:\Download" /s /c "cmd /c if @fsize GEQ 10000000 echo @path @file @fsize" /d -120

Il comando seguente consente di eliminare i file più vecchi di 120 giorni contenuti nella stessa cartella con dimensione uguale o superiore a 10 MB:

ForFiles /p "D:\Download" /s /c "cmd /c if @fsize GEQ 10000000 del @path /f /q" /d -120

Il comando non restituisce alcun tipo di risposta: non appena ForFiles conclude il suo intervento si può verificare il quantitativo di spazio recuperato.

Come nota finale, è importante osservare che 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 la scheda Azioni, si può richiedere la cancellazione periodica dei file più vecchi nella cartella indicata.

Per richiamare direttamente l’utilità, basta 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, basta creare un file batch (.bat) indicandone quindi il percorso nella casella Programma o script.

Nel caso in cui si richiamasse un file batch con l’Utilità di pianificazione di Windows, per evitare la comparsa della classica schermata a sfondo nero si può usare la sintassi cmd.exe /c start /min file-batch.bat.

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

In un altro articolo abbiamo visto come calcolare lo spazio occupato su disco e trovare file di grandi dimensioni.

Ti consigliamo anche

Link copiato negli appunti