Visualizzazione post con etichetta forfiles. Mostra tutti i post
Visualizzazione post con etichetta forfiles. Mostra tutti i post

domenica 7 febbraio 2021

Come ricercare file di grandi dimensioni tramite il Prompt dei comandi

Tramite il prompt dei comandi è possibile ricercare i file di grandi dimensioni utilizzando il comando forfiles.

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 "


Prompt dei comandi - ForFiles
FIG 1 - Prompt dei comandi - ForFiles