forfiles

Seleziona ed esegue un comando in un file o in un set di file. Questo comando viene usato più comunemente nei file batch.

Syntax

forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] [{<date> | <days>}]]

Parameters

Parameter Description
/P <pathname> Specifica il percorso da cui avviare la ricerca. Per impostazione predefinita, la ricerca inizia nella directory di lavoro corrente.
/M <searchmask> Cerca i file in base alla maschera di ricerca specificata. La maschera di ricerca predefinita è *.
/S Indica al comando forfiles di eseguire una ricerca ricorsiva nelle sottodirectory.
/C <command> Esegue il comando specificato in ogni file. Le stringhe di comando devono essere racchiuse tra virgolette doppie. Il comando predefinito è "cmd /c echo @file".
/D [{+\|-}][{<date> | <days>}] Seleziona i file con una data dell'ultima modifica entro l'intervallo di tempo specificato:
  • Seleziona i file con una data dell'ultima modifica successiva o uguale a (+) o precedente o uguale a (-) della data specificata, dove la data è nello stesso formato regionale del dispositivo Windows, ad esempio MM/GG/AAAA per l'inglese (Stati Uniti).
  • Seleziona i file con una data dell'ultima modifica successiva o uguale a (+) la data corrente più il numero di giorni specificati o precedenti o uguali a (-) la data corrente meno il numero di giorni specificati.
  • I valori validi per i giorni includono qualsiasi numero compreso tra 0 e 32.768. Se non viene specificato alcun segno, + viene usato per impostazione predefinita.
/? Visualizza il testo della Guida nella finestra cmd.

Remarks

  • Il comando forfiles /S è simile a dir /S.

  • È possibile utilizzare le variabili seguenti nella stringa di comando, come specificato dall'opzione della riga di comando /C :

    Variable Description
    @FILE File name.
    @FNAME Nome file senza estensione.
    @EXT Estensione del nome file.
    @PATH Percorso completo del file.
    @RELPATH Percorso relativo del file.
    @ISDIR Restituisce TRUE se un tipo di file è una directory. In caso contrario, questa variabile restituisce FALSE.
    @FSIZE Dimensioni del file, in byte.
    @FDATE Data ultima modifica nel file.
    @FTIME Timestamp dell'ultima modifica nel file.
  • Il comando forfiles consente di eseguire un comando o di passare argomenti a più file. Ad esempio, è possibile eseguire il comando type su tutti i file in un albero con l'estensione del nome file .txt. In alternativa, è possibile eseguire ogni file batch (*.bat) nell'unità C, con il nome del file Myinput.txt come primo argomento.

  • Questo comando può:

    • Selezionare i file in base a una data assoluta o a una data relativa utilizzando il parametro /d .

    • Creare un albero di archivi di file usando variabili come @FSIZE e @FDATE.

    • Differenziare i file dalle directory usando la variabile @ISDIR.

    • Includere caratteri speciali nella riga di comando utilizzando il codice esadecimale per il carattere, in formato 0xHH (ad esempio, 0x09 per una tabulazione).

  • Questo comando funziona implementando il flag recurse subdirectories sugli strumenti progettati per elaborare solo un singolo file.

Examples

Per elencare tutti i file batch nell'unità C, digitare:

forfiles /P c:\ /S /M *.bat /C "cmd /c echo @file is a batch file"

Per elencare tutte le directory nell'unità C, digitare:

forfiles /P c:\ /S /M * /C "cmd /c if @isdir==TRUE echo @file is a directory"

Per elencare tutti i file nella directory corrente che hanno almeno un anno di età, digitare:

forfiles /S /M *.* /D -365 /C "cmd /c echo @file is at least one year old."

Per visualizzare il file di testo è obsoleto per ciascuno dei file nella directory corrente che sono precedenti al 1° gennaio 2007, digitare:

forfiles /S /M *.* /D -01/01/2007 /C "cmd /c echo @file is outdated."

Per elencare le estensioni di file di tutti i file nella directory corrente in formato colonna e aggiungere una scheda prima dell'estensione, digitare:

forfiles /S /M *.* /C "cmd /c echo The extension of @file is 0x09@ext"