Cancellare Files Più Vecchi Di Una Certa Data Con FORFILES
Total Page:16
File Type:pdf, Size:1020Kb
Cancellare files più vecchi di una certa data con FORFILES Link: http://www.folblog.it/cancellare-files-pi-vecchi-di-una-certa-data-con-forfiles/ http://www.m-link.it/m- link_news/Script_batch_bat_per_eliminare_cancellare_file_piu_vecchi_di_un_certo_nu mero_di_giorni.asp http://scottelkin.com/programming/delete-files-older-than-date-using-batch-files/ https://technet.microsoft.com/en-us/library/cc753551(WS.10).aspx Un modo per cancellare automaticamente file più vecchie è usando come la soluzione FORFILES, un tool eseguibile da riga di comando, presente in Windows 7 (ma non in Windows XP), che consente di eseguire dei comandi su un insieme di files selezionabili con vari criteri. La sintassi del comando è questa: FORFILES [/p <Path>] [/m <SearchMask>] [/s] [/c “<Command>“] [/d [{+|-}][{<Date>|<Days>}]] p = path s = cerca anche nelle subdirectory del path principale m = file con criteri specificati (esempio.: *.img); di default assume *.* c = esegue il comando racchiuso tra apici doppi d = ultima modifica più vecchia di (giorni/data) Ad esempio, per cancellare i files più vecchi di 10 giorni il comando è: FORFILES /P Z:\Diskimages /C “cmd /c DEL @file /f /q” /D –10 In questo modo viene eseguito il comando DEL /f /q su tutti i files presenti nella cartella Z:\Diskimages e che sono più vecchi di 10gg Per cancellare i file giornalieri FORFILES /P Z:\Diskimages /C “cmd /c DEL @file /f /q” /D 0 Per verificare il funzionamento del comando si può usare il comando echo invece di del, si elencano i file giornalieri e delle sottodirectory: Forfiles /p c:\backup /s /m *.* /d 0 /c "Cmd /C Echo 0x22@Path\@File0x22" Per cancellare i file giornalieri, anche quelli che si trovano nelle sottodirectory, e non si cancellano le sottodirectory Forfiles /p c:\backup /s /m *.* /d 0 /c "Cmd /C del @File /q /f" Se si vogliono cancellare le directory con file creati nella data odierna Forfiles /p c:\backup /s /d 0 /c "Cmd /C rd @path /s /q" Osservazioni Forfiles è più comunemente utilizzato nei file batch. Forfiles / s è simile a dir / s. È possibile utilizzare le seguenti variabili nella stringa di comando come specificato dall'opzione della riga di comando / c . Variabile Descrizione @FILE Nome del file. @FNAME Nome del file senza estensione. @EXT Estensione nome file. @PATH Percorso completo del file. @RELPATH Percorso relativo del file. @ISDIR Valuta a TRUE se un tipo di file è una directory. Altrimenti, questa variabile viene valutata FALSE. @FSIZE Dimensione del file, in byte. @FDATE Ultima data di modifica del file nel file. @FTIME Ultima data di modificato sul file. Uso FORFILES con percorsi UNC Attenzione però che FORFILES non supporta i percorsi UNC (tipo \\192.168.0.10\Folder oppure \\MYETHHD\Folder). Se si vuole operare su un percorso di rete occorre perciò associarlo ad una lettera tramite il comando: NET USE Z:\ \\192.168.0.10\Folder [pwd] [/USER {nomeutente}] in cui Z:\ è la lettera che si vuole associare al percorso UNC (\\192.168.0.10\Folder nell’esempio), pwd e /USER nomeutente sono gli eventuali username/password necessari per poter accedere alla cartella condivisa. Per la mia esigenza, ho creato il seguente file .bat set _TARGET=Z: set _NET=\\192.168.3.244\backup set _SOURCE=G:\ set _USR=FOLBlog set _PWD=miapassword set _GG=10 NET USE %_TARGET% /Delete NET USE %_TARGET% %_NET% %_PWD% /USER:%_USR% FORFILES /P %_TARGET%\Diskimages /C “cmd /c del @file /f /q” /D –%_GG% e ne ho pianificato l’esecuzione giornaliera (con diritti di amministratore) a fine serata. Uso FORFILES con percorsi UNC Se sul vostro PC non è presente l’utility FORFILES, potete scaricarla (*) e inserirla nella cartella C:\Windows\System32. (*) La versione di forfile.exe presente in Windows 7 x64 è la 6.1.7600.16385. Trovare un link per il download dell’utility non è stato affatto facile. E comunque si tratta di una versione inclusa nel Resource Kit di Windows 2000, perciò piuttosto datata. .