Utilizzare i forfile per elaborare i file in base all'età

È sempre bene conoscere un po 'di magia dalla riga di comando, poiché a volte è più facile elaborare i comandi in quel modo.

Questa guida illustra il comando Forfiles in Windows Vista e Windows 7 (Aggiornamento: disponibile anche nelle versioni più recenti di Windows).

I forfile possono elaborare i file in base a nomi, estensioni di file ed età. Ad esempio è possibile trovare tutti i documenti in una directory che hanno più di 20 giorni o tutti i documenti in c: \ documenti che sono stati modificati da una data specifica.

Il comando forfiles può essere associato alle opzioni di elaborazione per eliminare quei file o per creare un elenco di tutti i file che corrispondono ai filtri. Diamo un'occhiata più da vicino al comando forfiles.

FORFILES [/ P pathname] [/ M searchmask] [/ S] [/ C command] [/ D [+ | -] gg / MM / aaaa]

Descrizione: seleziona un file (o set di file) ed esegue un comando su quel file. Questo è utile per i lavori batch.

Elenco parametri:

  • / P nome percorso Indica il percorso per iniziare la ricerca. La cartella predefinita è la directory di lavoro corrente (.).
  • / M maschera di ricerca Cerca i file in base a una maschera di ricerca. La maschera di ricerca predefinita è '*'.
  • / S Indica ai file di ricorrere in sottodirectory. Come "DIR / S".
  • / C comando Indica il comando da eseguire per ciascun file. Le stringhe di comando devono essere racchiuse tra virgolette doppie. Il comando predefinito è "cmd / c echo @file".

Le seguenti variabili possono essere utilizzate nella stringa di comando:

  • @file: restituisce il nome del file.
  • @fname: restituisce il nome del 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 un tipo di file è una directory e "FALSE" per i file.
  • @fsize: restituisce la dimensione 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 (es. 0x09 per la scheda). I comandi CMD.exe interni devono essere preceduti da "cmd / c".

/ D date Seleziona i file con una data dell'ultima modifica maggiore o uguale a (+), o inferiore o uguale a (-), la data specificata utilizzando il formato "gg / MM / aaaa"; o seleziona i file con una data dell'ultima modifica maggiore o uguale a (+) la data corrente più "dd" giorni, o minore o uguale a (-) la data corrente meno "dd" giorni. Un numero di giorni "dd" valido può essere qualsiasi numero compreso nell'intervallo 0 - 32768. Se non specificato, viene considerato "+" come segno predefinito.

/? Visualizza questo messaggio di aiuto. Questo file di aiuto può essere aperto inserendo il comando forfiles /? in un prompt dei comandi. Premi Windows-R, digita cmd e premi invio per avviare la riga di comando in Windows.

Il comando forfiles /P c:\test\ /M .doc /S /D -10 cerca nella directory c: \ test e in tutte le sue sottodirectory i file con estensione .doc precedenti a 10 giorni.

Il parametro / p seguito da una directory definisce la directory iniziale, / s include le sottodirectory nella ricerca, / m filtra i file e le cartelle in base alla stringa immessa e / D definisce la data o un intervallo di tempo.

Il comando / C viene utilizzato per elaborare i file che si trovano ulteriormente. Ad esempio, può essere utilizzato per eseguire il comando seguente: /C "cmd /c echo @fname" > test.txt echo i nomi di ciascun file trovato e salva i risultati in text.txt nella stessa directory.

Il comando completo si presenta quindi come questo forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt

Un'altra possibilità è quella di eliminare i file che corrispondono alla ricerca, questo è fatto con il comando /C "cmd /c del @File

Si consiglia comunque di testare prima l'output, prima di emettere il comando delete per assicurarsi che vengano eliminati solo i file giusti. Gli utenti esperti possono creare un file batch per eseguire regolarmente i file.