findstr

Cerca modelli di testo nei file.

Sintassi

findstr [/b] [/e] [/l | /r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/f:<file>] [/c:<string>] [/g:<file>] [/d:<dirlist>] [/a:<colorattribute>] [/off[line]] <strings> [<drive>:][<path>]<filename>[ ...]

Parametri

Parametro Descrizione
/ b Se è all'inizio di una riga, corrisponde al modello di testo.
/e Se alla fine di una riga, corrisponde al modello di testo.
/l Le stringhe di ricerca letteralmente processi.
/r Processi di ricercano di stringhe come espressioni regolari. Si tratta dell'impostazione predefinita.
/s Cerca la directory corrente e tutte le sottodirectory.
/i Ignora le lettere maiuscole e minuscole durante la ricerca della stringa.
/x Stampa le righe che corrispondono esattamente.
/v Stampa solo le righe che non contengono una corrispondenza.
/n Visualizza il numero di ogni riga corrispondente.
/m Se un file contiene una corrispondenza, viene stampato solo il nome del file.
/o Offset carattere viene stampato prima di ogni riga corrispondente.
/p Ignora i file con caratteri non stampabili.
/ [offline] Non ignorare i file che sono impostato l'attributo non in linea.
/f:<file> Ottiene un elenco di file dal file specificato.
/c:<string> Utilizza il testo specificato come stringa di ricerca letterale.
/g:<file> Ottiene ricerca stringhe dal file specificato.
/d:<dirlist> Cerca l'elenco di directory specificato. Ogni directory devono essere separati da un punto e virgola (;), ad esempio dir1;dir2;dir3.
/a:<colorattribute> Specifica gli attributi di colore con due cifre esadecimali. Tipo color /? Per ulteriori informazioni.
<strings> Specifica il testo da cercare nella filename. Obbligatorio.
[\<drive>:][<path>]<filename>[...] Specifica il percorso e un file o file da cercare. Nome di almeno un file è obbligatorio.
/? Visualizza la Guida al prompt dei comandi.

Osservazioni:

  • Tutte le opzioni di riga di comando findstr devono precedere le stringhe e filename nella stringa di comando.

  • Le espressioni regolari utilizzano sia caratteri letterali che metacaratteri per trovare modelli di testo, anziché stringhe esatte di caratteri.

    • Un carattere letterale è un carattere che non ha un significato speciale nella sintassi dell'espressione regolare. Corrisponde invece a un'occorrenza di quel carattere. Ad esempio, lettere e numeri sono caratteri letterali.

    • Un metacarattere è un simbolo con un significato speciale (un operatore o un delimitatore) nella sintassi delle espressioni regolari.

      I meta-caratteri accettati sono:

      Meta-carattere Valore
      . Jolly: qualsiasi carattere
      * Repeat: zero o più occorrenze del carattere precedente o della classe.
      ^ Posizione riga iniziale: inizio della riga.
      $ Posizione riga finale: fine della riga.
      [class] Classe di caratteri: qualsiasi carattere in un set.
      [^class] Classe inversa: qualsiasi carattere non in un set.
      [x-y] Intervallo: qualsiasi carattere compreso nell'intervallo specificato.
      \x Escape: uso letterale di un meta-carattere.
      \<string Posizione parola iniziale: inizio della parola.
      string\> Posizione parola finale: fine della parola.

      I caratteri speciali nella sintassi delle espressioni regolari sono della massima potenza quando vengono utilizzati insieme. Ad esempio, utilizzare la combinazione del carattere jolly (.) e del carattere ripetuto (*) per trovare una corrispondenza con qualsiasi stringa di caratteri: .*

      Utilizzare l'espressione seguente come parte di un'espressione più ampia per trovare qualsiasi stringa che inizia con b e termina con ing: b.*ing:

  • Per cercare più stringhe in un set di file, è necessario creare un file di testo che contenga ogni criterio di ricerca su una riga separata.

  • Utilizzare gli spazi per separare più stringhe di ricerca, a meno che l'argomento è preceduto da /c.

Esempi

Per eseguire la ricerca di hello o there nel file x.y, digitare:

findstr hello there x.y

Per cercare hello there nel file x.y, digitare:

findstr /c:"hello there" x.y

Per trovare tutte le occorrenze della parola Windows (con lettera W maiuscola) nel file proposal.txt, digitare:

findstr Windows proposal.txt

Per cercare tutti i file nella directory corrente e tutte le sottodirectory contenenti la parola Windows, indipendentemente dal caso lettera, digitare:

findstr /s /i Windows *.*

Per trovare tutte le righe che iniziano con FOR e sono precedute da zero o più spazi (ad esempio un ciclo di programma del computer) e per visualizzare il numero di riga in cui si trova ogni occorrenza, digitare:

findstr /b /n /r /c:^ *FOR *.bas

Per elencare i file esatti in cui si desidera eseguire la ricerca in un file di testo, utilizzare i criteri di ricerca nel file stringlist.txt, per cercare i file elencati in filelist.txt, quindi per archiviare i risultati nel file results.out, digitare:

findstr /g:stringlist.txt /f:filelist.txt > results.out

Per elencare tutti i file contenenti la parola computer all'interno della directory corrente e tutte le sottodirectory, indipendentemente dal caso, digitare:

findstr /s /i /m \<computer\> *.*

Per elencare tutti i file che contiene la parola computer e altre parole che iniziano con comp, (ad esempio complimenti e competizione), digitare:

findstr /s /i /m \<comp.* *.*