Digitando
forfiles /?
seguito da invio verrà mostrato l'help del comando con informazioni sulla sintassi e i vari parametri come indicato di seguito.
FORFILES [/P nomepercorso] [/M mascheraricerca] [/S]
[/C comando] [/D [+ | -] {dd/MM/yyyy | dd}]
Descrizione:
Seleziona un file, o un gruppo di file, e esegue un
comando sul file selezionato. Utile per i processi batch.
Elenco parametri:
/P nomepercorso Indica il percorso da cui avviare la ricerca.
La cartella predefinita è la directory di lavoro
corrente.
/M masch.ricerca Esegue la ricerca di file in base a una
maschera di ricerca.
La maschera di ricerca predefinita è '*' .
/S Indica la ricerca ricorsiva nelle
sottodirectory. Come "DIR /S".
/C comando Indica il comando da eseguire per ciascun file.
Le stringhe del comando devono essere
racchiuse tra virgolette doppie.
Il comando predefinito è "cmd /c echo @file".
È possibile utilizzare le seguenti variabili nella
stringa di comando:
@file - Restituisce il nome del file.
@fname - Restituisce il nome file senza
estensione.
@ext - Restituisce solo l'estensione del
file.
@path - Restituisce il percorso completo del file.
@relpath - Restituisce il percorso relativo del
file.
@isdir - Restituisce "TRUE" se il tipo di file è
una directory e "FALSE" per i file.
@fsize - Restituisce le dimensioni del file in
byte.
@fdate - Restituisce la data dell'ultima modifica del
file.
@ftime - Restituisce l'ora dell'ultima modifica del
file.
Per includere caratteri speciali nella riga
di comando, utilizzare il codice esadecimale
per il carattere nel formato 0xHH (ad esempio,
0x09 per TAB). I comandi interni CMD.exe
devono essere preceduti da "cmd /c".
/D data Seleziona i file con la data dell'ultima
modifica successiva
o uguale a (+), o precedente o uguale alla
(-), data specificata utilizzando il
formato "dd/MM/yyyy", o seleziona i file con
la data dell'ultima modifica successiva
o uguale alla (+) data corrente più
"gg" giorni, o precedente o uguale alla
(-) data corrente meno "gg" giorni. Un numero
"gg" di giorni valido può essere qualsiasi numero
compreso tra 0 e 32768.
"+" viene considerato il segno predefinito se
non altrimenti specificato.
/? Visualizza questo messaggio della Guida.
Esempi:
FORFILES /?
FORFILES
FORFILES /P C:\WINDOWS /S /M DNS*.*
FORFILES /S /M *.txt /C "cmd /c type @file | more"
FORFILES /P C:\ /S /M *.bat
FORFILES /D -30 /M *.exe
/C "cmd /c echo @path 0x09 è stato modificato 30 giorni fa"
FORFILES /D 01/01/2001
/C "cmd /c echo @fname è stato modificato dopo il 1 gennaio 2001"
FORFILES /D +4/2/2021 /C "cmd /c echo @fname è stato modificato oggi"
FORFILES /M *.exe /D +1
FORFILES /S /M *.doc /C "cmd /c echo @fsize"
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
Per ricercare file che superano la dimensione di 100MB (104857600 byte) in tutte le sottocartelle si può utilizzare il comando
forfiles /S /M * /C "cmd /c if @fsize GEQ 1048576 echo @path"
Se si intende visualizzare, oltre al path, anche la dimensione effettiva del file
forfiles /S /M * /C "cmd /c if @fsize GEQ 1048576 echo @path - @fsize "