Sdílet prostřednictvím


findstr

Vyhledá vzory textu v souborech.

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

Parameters

Parameter Description
/b Odpovídá vzoru textu, pokud je na začátku řádku.
/e Odpovídá vzoru textu, pokud je na konci řádku.
/l Zpracovává doslova vyhledávací řetězce.
/r Zpracovává vyhledávací řetězce jako regulární výrazy. Toto je výchozí nastavení.
/s Prohledá aktuální adresář a všechny podadresáře.
/i Při hledání řetězce ignoruje malá a velká písmena znaků.
/x Vytiskne řádky, které přesně odpovídají.
/v Vytiskne jenom řádky, které neobsahují shodu.
/n Vytiskne číslo řádku každého řádku, který odpovídá.
/m Vytiskne pouze název souboru, pokud soubor obsahuje shodu.
/o Vytiskne posun znaků před každým odpovídajícím řádkem.
/p Přeskočí soubory s netisknutelnými znaky.
/off[line] Nepřekočuje soubory, které mají nastavený atribut offline.
/f:<file> Získá seznam souborů ze zadaného souboru.
/c:<string> Použije zadaný text jako literálový hledaný řetězec.
/g:<file> Získá vyhledávací řetězce ze zadaného souboru.
/d:<dirlist> Vyhledá zadaný seznam adresářů. Každý adresář musí být oddělený středníkem (;), například dir1;dir2;dir3.
/a:<colorattribute> Určuje atributy barev se dvěma šestnáctkovými číslicemi. Další informace potřebujete zadat color /?.
<strings> Určuje text, který se má hledat v názvu souboru. Required.
[\<drive>:][<path>]<filename>[...] Určuje umístění a soubor nebo soubory, které se mají prohledávat. Vyžaduje se aspoň jeden název souboru.
/? Zobrazí nápovědu na příkazovém řádku.

Remarks

  • Všechny parametry příkazového řádku findstr musí předcházet řetězcům a názvu souboru v příkazovém řetězci.

  • Regulární výrazy používají literální znaky i metaznaky k vyhledání vzorů textu, nikoli přesných řetězců znaků.

    • Literální znak je znak, který nemá zvláštní význam v syntaxi regulárního výrazu; místo toho odpovídá výskytu tohoto znaku. Například písmena a číslice jsou literální znaky.

    • Metaznak je symbol se zvláštním významem (operátor nebo oddělovač) v syntaxi regulárního výrazu.

      Akceptované metaznaky jsou:

      Meta-character Value
      . Zástupný znak – Libovolný znak
      * Opakovat – Nula nebo více výskytů předchozího znaku nebo třídy.
      ^ umístění počáteční čáry – začátek řádku.
      $ Umístění koncové čáry – konec čáry.
      [class] Třída znaků – Libovolný znak v sadě.
      [^class] Inverzní třída - Libovolný znak, který není v sadě.
      [x-y] Rozsah – Libovolné znaky v určeném rozsahu.
      \x Escape – Doslovné použití metaznaku.
      \<string pozice počátečního slova – začátek slova.
      string\> Koncová pozice slova – konec slova.

      Speciální znaky v syntaxi regulárního výrazu mají při jejich společném použití největší sílu. Použijte například kombinaci zástupného znaku (.) a zopakujte znak (*) tak, aby odpovídal libovolnému řetězci znaků: .*

      Následující výraz použijte jako součást většího výrazu, aby bylo možné vyhledat libovolný řetězec začínající písmenem b a končícím řetězcem ing: b.*ing

  • Pokud chcete vyhledat více řetězců v sadě souborů, musíte vytvořit textový soubor, který obsahuje každé kritérium hledání na samostatném řádku.

  • K oddělení více vyhledávacích řetězců používejte mezery, pokud argument nemá předponu /c.

Examples

Chcete-li vyhledat hello nebo tam v souboru x.y, napište:

findstr hello there x.y

Chcete-li vyhledat hello v souboru x.y, napište:

findstr /c:"hello there" x.y

Chcete-li najít všechny výskyty slova Windows (s velkým počátečním písmenem W) v souboru proposal.txt, zadejte:

findstr Windows proposal.txt

Chcete-li prohledat všechny soubory v aktuálním adresáři a ve všech podadresářích, které obsahovaly slovo Windows, bez ohledu na velká a malá písmena, zadejte:

findstr /s /i Windows *.*

Chcete-li vyhledat všechny výskyty řádků, které začínají řetězcem FOR a před nimiž je nula nebo více mezer (jako ve smyčce počítačového programu), a zobrazit číslo řádku, na kterém jsou jednotlivé výskyty nalezeny, zadejte:

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

Chcete-li zobrazit seznam přesných souborů, které chcete prohledat v textovém souboru, použijte kritéria hledání v stringlist.txtsouboru, abyste prohledali soubory uvedené v filelist.txt, a pak výsledky uložte do souboru results.out, zadejte:

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

Chcete-li vypsat každý soubor obsahující slovo počítač v aktuálním adresáři a ve všech podadresářích bez ohledu na velká a malá písmena, zadejte:

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

Pokud chcete zobrazit seznam všech souborů obsahujících slovo počítač a všechna ostatní slova, která začínají psaním (například compliment a soutěžit), zadejte:

findstr /s /i /m \<comp.* *.*
  • Command-Line syntaxe