共用方式為


findstr

搜尋檔案中的文字模式。

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 如果文字模式位於行的開頭,則比對文字模式。
/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> 指定要在 檔案名稱中搜尋的文字。 Required.
[\<drive>:][<path>]<filename>[...] 指定要搜尋的位置和檔案或檔案。 至少需要一個檔名。
/? 在命令提示字元中顯示說明。

Remarks

  • 所有 findstr 命令列選項都必須位於命令字串中的 字串檔案名稱 之前。

  • 正則表達式同時使用常值字元和中繼字元來尋找文字模式,而不是確切的字元字串。

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

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

      接受的元字元如下:

      Meta-character Value
      . 萬用字元 - 任何字元
      * 重複 - 零次或多次出現前一個字元或類別。
      ^ 開始行位置 - 行的開頭。
      $ 結束行位置 - 行尾。
      [class] 字元類別 - 集合中的任何一個字元。
      [^class] 反向類別 - 不在集合中的任何一個字元。
      [x-y] 範圍 - 指定範圍內的任何字元。
      \x Escape - 元字元的字面使用。
      \<string 開始字位置 - 字組的開頭。
      string\> 結束字位置 - 字尾。

      正則表達式語法中的特殊字元在一起使用時最強大。 例如,使用通配符 (.) 和重複 (*) 字元的組合,以符合任何字元字串:.*

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

  • 若要在一組檔案中搜尋多個字串,您必須建立文本檔,其中包含個別行上的每個搜尋準則。

  • 使用空格來分隔多個搜尋字串,除非引數以 /c 為前置詞。

Examples

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

findstr hello there x.y

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

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\> *.*

若要列出每一個檔案,其中包含計算機一詞,以及以comps 開頭的任何其他單字,(例如讚美和競爭),請輸入:

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