分享方式:


findstr

搜尋檔案中的文字模式。

語法

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

參數

參數 描述
/b 如果文字模式位於行首,則比對文字模式。
/e 如果文字模式位於行尾,則比對文字模式。
/l 按字面意思處理搜尋字串。
/r 將搜尋字串作為規則運算式處理。 這是預設設定。
/s 搜尋目前目錄和所有子目錄。
/i 在搜尋字串時忽略字元大小寫。
/x 列印完全相符的行。
/v 只列印不包含相符項目的行。
/n 列印符合之每一行的行號。
/m 如果檔案包含相符項目,則只列印檔案名稱。
/o 在每行相符行之前列印字元位移。
/p 略過含有不可列印字元的檔案。
/off[line] 不會略過已設定離線屬性的檔案。
/f:<file> 從指定的檔案取得檔案清單。
/c:<string> 使用指定的文字做為文字搜尋字串。
/g:<file> 從指定的檔案取得搜尋字串。
/d:<dirlist> 搜尋指定的目錄清單。 每個目錄都必須以分號分隔 (;),例如:dir1;dir2;dir3
/a:<colorattribute> 用兩個十六進位數指定色彩屬性。 如需更多資訊,請輸入 color /?
<strings> 指定要在 filename 中搜尋的文字。 必要。
[\<drive>:][<path>]<filename>[...] 指定要搜尋的位置和檔案。 至少需要一個檔案名稱。
/? 在命令提示字元顯示 [說明]。

備註

  • 所有 findstr 命令列選項在命令字串中都必須位於 stringsfilename 之前。

  • 規則運算式同時使用常值字元和中繼字元來尋找文字模式,而不是精確的字元字串。

    • 常值字元是規則運算式語法中沒有特殊意義的字元;相反地,它會比對該字元的出現次數。 例如,字母和數位是常值字元。

    • 中繼字元是規則運算式語法中具有特殊意義的符號 (運算子或分隔符號)。

      接受的中繼字元如下:

      中繼字元
      . 萬用字元 - 任何字元
      * 重複 - 前一個字元或類別出現零次或更多次。
      ^ 起始行位置 - 行首。
      $ 結束行位置 - 行尾。
      [class] 字元類別 - 集合中的任何一個字元。
      [^class] 反向類別 - 任何不在集合中的字元。
      [x-y] 範圍 - 指定範圍內的任何字元。
      \x 逸出 - 中繼字元的常值使用。
      \<string 起始字位置 - 字首。
      string\> 結束字位置 - 字尾。

      規則運算式語法中的特殊字元一起使用時最能發揮效用。 例如,使用萬用字元 (.) 和重複 (*) 字元的組合來比對任何字元字串:.*

      使用下列運算式做為大型運算式的一部分,來比對開頭為 b 且以 ing 結尾的任何字串:b.*ing

  • 若要在一組檔案中搜尋多個字串,您必須建立文字檔,將各個搜尋條件分別列在各行中。

  • 除非引數前面加上 /c,否則使用空格來分隔多個搜尋字串。

範例

若要在檔案 x.y 中搜尋 hellothere,請輸入:

findstr hello there x.y

若要在檔案 x.y 中搜尋 hello there,請輸入:

findstr /c:"hello there" x.y

若要在檔案 proposal.txt 中尋找所有出現的 Windows 一字 (首字母為大寫字母 W),請輸入:

findstr Windows proposal.txt

若要搜尋目前目錄和所有子目錄中包含 Windows 一字的所有檔案 (不區分字母大小寫),請輸入:

findstr /s /i Windows *.*

若要尋找以 FOR 開頭且前面加上零或多個空格的所有行 (如計算機程式迴圈中),並顯示找到每個出現的行號,請輸入:

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

若要在文字檔案中列出要搜尋的確切檔案,請使用檔案 stringlist.txt 中的搜尋條件搜尋 filelist.txt 中列出的檔案,然後將結果儲存在檔案results.out 中,請輸入:

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

若要列出目前目錄和所有子目錄中包含 computer 一字的每個檔案 (不區分字母大小寫),請輸入:

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

若要列出包含 Computer 一字與以 comp 開頭的任何其他單字 (例如:compliment 和 compete) 的每個檔案,請輸入:

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