Sdílet prostřednictvím


findstr

Vyhledá vzory textu v souborech.

Syntaxe

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

Parametry

Parametr Popis
/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í.
za sekundu Prohledá aktuální adresář a všechny podadresáře.
/já 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á vyhledat v názvu souboru. Povinné.
[\<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.

Poznámky

  • Všechny možnosti 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:

      Metaznak Hodnota
      . zástupný znak – libovolný znak
      * Opakování – 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ý jeden znak v sadě.
      [^class] inverzní třída – libovolný znak, který není v sadě.
      [x-y] Rozsah – všechny znaky v zadané oblasti.
      \x řídicí – použití literálu metaznamu.
      \<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ů: .*

      Jako součást většího výrazu použijte následující výraz, který odpovídá libovolnému řetězci začínajícímu b a končícím : 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.

  • Mezery slouží k oddělení více vyhledávacích řetězců, pokud není argument předponou /c.

Příklady

Pokud chcete vyhledat hello nebo v souboru x.y, zadejte:

findstr hello there x.y

Pokud chcete vyhledat ahoj, v souboru x.y, zadejte:

findstr /c:"hello there" x.y

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

findstr Windows proposal.txt

Pokud chcete prohledat každý soubor v aktuálním adresáři a všechny podadresáře, které obsahovaly slovo Windows, bez ohledu na velikost písmena, zadejte:

findstr /s /i Windows *.*

Chcete-li najít všechny výskyty řádků, které začínají FOR a předchází nula nebo více mezer (jako ve smyčce počítačového programu) a chcete-li zobrazit číslo řádku, kde je nalezen každý výskyt, zadejte:

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

Pokud chcete zobrazit seznam přesných souborů, které chcete hledat v textovém souboru, použijte kritéria hledání v souboru stringlist.txt, vyhledejte soubory uvedené v filelist.txta uložte výsledky do souboru výsledky.out, zadejte:

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

Chcete-li zobrazit seznam všech souborů obsahujících slovo počítač v aktuálním adresáři a všech podadresářích bez ohledu na velikost písmen, 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