Dela via


findstr

Söker efter textmönster i filer.

Syntax

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>[ ...]

Parameterar

Parameter Beskrivning
/b Matchar textmönstret om det är i början av en rad.
/ e Matchar textmönstret om det är i slutet av en rad.
/l Bearbetar söksträngar bokstavligen.
/r Bearbetar söksträngar som reguljära uttryck. Det här är standardinställningen.
/ s Söker i den aktuella katalogen och alla underkataloger.
/jag Ignorerar skiftläget för tecknen när du söker efter strängen.
/x Skriver ut rader som matchar exakt.
/v Skriver bara ut rader som inte innehåller någon matchning.
/ n Skriver ut radnumret för varje rad som matchar.
/m Skriver bara ut filnamnet om en fil innehåller en matchning.
/o Skriver ut teckenförskjutning före varje matchande rad.
/p Hoppar över filer med icke-utskrivbara tecken.
/off[rad] Hoppar inte över filer som har offlineattributet inställt.
/f:<file> Hämtar en fillista från den angivna filen.
/c:<string> Använder den angivna texten som en literal söksträng.
/g:<file> Hämtar söksträngar från den angivna filen.
/d:<dirlist> Söker i den angivna listan med kataloger. Varje katalog måste avgränsas med ett semikolon (;), till exempel dir1;dir2;dir3.
/a:<colorattribute> Anger färgattribut med två hexadecimala siffror. Skriv color /? för ytterligare information.
<strings> Anger den text som ska sökas efter i filnamn. Obligatoriskt.
[\<drive>:][<path>]<filename>[...] Anger platsen och filen eller filerna som ska sökas. Minst ett filnamn krävs.
/? Visar Hjälp i kommandotolken.

Anmärkningar

  • Alla kommandoradsalternativ för findstr måste föregå strängar och filnamn i kommandosträngen.

  • Reguljära uttryck använder både literaltecken och metatecken för att hitta textmönster i stället för exakta teckensträngar.

    • Ett literaltecken är ett tecken som inte har någon särskild betydelse i syntaxen för reguljära uttryck. i stället matchar den en förekomst av det tecknet. Bokstäver och siffror är till exempel literaltecken.

    • Ett metatecken är en symbol med särskild betydelse (en operator eller avgränsare) i syntaxen för reguljära uttryck.

      De godkända meta-tecknen är:

      Metatecken Värde
      . jokertecken – alla tecken
      * Upprepa – Noll eller fler förekomster av föregående tecken eller klass.
      ^ Radposition för början – början av raden.
      $ Slutlinjeposition – Slutet av linjen.
      [class] Teckenklass – ett tecken i en uppsättning.
      [^class] Inverse-klass – ett tecken som inte finns i en uppsättning.
      [x-y] Range – Alla tecken inom det angivna intervallet.
      \x Escape – Literal användning av ett metatecken.
      \<string Begynnelseordposition – Början av ordet.
      string\> Slutordsposition – Ordets slut.

      Specialtecken i syntaxen för reguljära uttryck har mest kraft när du använder dem tillsammans. Använd till exempel kombinationen av jokertecknet (.) och upprepa (*) tecken för att matcha alla teckensträngar: .*

      Använd följande uttryck som en del av ett större uttryck för att matcha alla strängar som börjar med b och slutar med ing: b.*ing

  • Om du vill söka efter flera strängar i en uppsättning filer måste du skapa en textfil som innehåller varje sökvillkor på en separat rad.

  • Använd blanksteg för att separera flera söksträngar såvida inte argumentet är prefixet med /c.

Exempel

Om du vill söka efter hello eller det i filen x.yskriver du:

findstr hello there x.y

Om du vill söka efter hej där i filen x.yskriver du:

findstr /c:"hello there" x.y

Om du vill hitta alla förekomster av ordet Windows (med en inledande versal bokstav W) i filen proposal.txtskriver du:

findstr Windows proposal.txt

Om du vill söka i varje fil i den aktuella katalogen och alla underkataloger som innehåller ordet Windowsskriver du:

findstr /s /i Windows *.*

Om du vill hitta alla förekomster av rader som börjar med FOR och föregås av noll eller fler blanksteg (som i en datorprogramsloop) och för att visa radnumret där varje förekomst hittas skriver du:

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

Om du vill visa en lista över de exakta filer som du vill söka i en textfil använder du sökvillkoren i filen stringlist.txt, för att söka i filerna som anges i filelist.txtoch sedan lagra resultaten i filen results.out, typ:

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

Om du vill visa en lista över alla filer som innehåller ordet dator i den aktuella katalogen och alla underkataloger, oavsett skiftläge, skriver du:

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

Om du vill visa en lista över alla filer som innehåller ordet dator och andra ord som börjar med comp (till exempel komplettera och tävla) skriver du:

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