Condividi tramite


forfiles

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

Sintassi

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

Parametri

Parametro Descrizione
/P <pathname> Specifica il percorso da cui iniziare la ricerca. Per impostazione predefinita, la ricerca inizia nella directory di lavoro corrente.
/M <searchmask> Cerca i file in base alla maschera di ricerca specificati. La maschera di ricerca predefinita è *.
/S Indica al comando forfiles di eseguire ricerche nelle sottodirectory in modo ricorsivo.
/C <command> Esegue il comando specificato su 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 intervallo di tempo specificato:
  • -Consente di selezionare i file con una data dell'ultima modifica successiva o uguale a (+) o precedente o uguale a (-) la data specificata, in cui date è nel formato MM/GG/AAAA.
  • -Consente di selezionare i file con una data dell'ultima modifica successiva o uguale a (+) la data corrente più il numero di giorni specificati, o precedente o uguale a (-) la data corrente meno il numero di giorni specificato.
  • -I valori validi per days includere qualsiasi numero compreso nell'intervallo 0-32, 768. Se non viene specificato alcun segno, + viene utilizzato per impostazione predefinita.
/? Visualizza il testo della Guida nella finestra cmd.

Osservazioni:

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

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

    Variabile Descrizione
    @FILE Nome del file.
    @FNAME Nome file senza estensione.
    @EXT Estensione di 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 Dimensione del file in byte.
    @FDATE Data ultima modifica al file.
    @FTIME Ora ultima modifica al file.
  • Il comando forfiles consente di eseguire un comando o di passare argomenti a più file. Ad esempio, è possibile eseguire il tipo comando su tutti i file in una struttura ad albero con l'estensione del nome file con estensione txt. Oppure è possibile eseguire tutti i file batch (*. bat) sull'unità C, con il nome file Myinput. txt come primo argomento.

  • Questo comando può:

    • Selezionare i file da una data assoluta o una data relativa utilizzando il /d parametro.

    • Creare una struttura di archiviazione di file utilizzando variabili come @FSIZE e @FDATE.

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

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

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

Esempi

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

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

Per elencare tutte le directory sull'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 sono almeno un anno fa, digitare:

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

Per visualizzare il testo file è obsoleto per ogni file nella directory corrente antecedenti il 1 ° gennaio 2007, digitare:

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

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

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