find
在檔案中搜尋文字字串,並顯示包含指定字串的文字行。
語法
find [/v] [/c] [/n] [/i] [/off[line]] <"string"> [[<drive>:][<path>]<filename>[...]]
參數
參數 | 描述 |
---|---|
/v | 顯示不包含指定 <string> 的所有行。 |
/c | 計算包含指定 <string> 的行,並顯示總數。 |
/n | 在每行前面加上檔案的行號。 |
/i | 指定搜尋不區分大小寫。 |
[/off[line]] | 不會略過已設定離線屬性的檔案。 |
<"string"> |
必要。 指定要搜尋的字元組 (用引號括住)。 |
[<drive>:][<path>]<filename> |
指定要搜尋指定字串之檔案的位置和名稱。 |
/? | 在命令提示字元顯示說明。 |
結束代碼
結束代碼 | 描述 |
---|---|
0 | 找到搜尋的字串 |
1 | 未找到搜尋的字串 |
2 | 未找到搜尋的檔案或指定的命令列參數無效 |
備註
如果未使用 /i,此命令將精確搜尋指定 string。 例如,此命令會以不同的方式處理字元
a
和A
。 不過,如果使用 /i,則搜尋將不區分大小寫,並將a
和A
視為相同字元。如果要搜尋的字串包含引號,則必須為字串中包含的每個引號加上雙引號 (例如:“”“此字串包含引號”“”)。
如果省略檔案名稱,此命令會做為篩選,從標準輸入來源 (通常是鍵盤、管道 (|) 或重新導向檔案) 取得輸入,然後顯示所有包含 string 的行。
若要結束主控台搜尋,請使用
CTRL-X
或CTRL-z
。您可以依任何順序輸入 find 命令的參數和命令列選項。
您不能在搜尋的字串中使用萬用字元 (* 和 ?)。 若要搜尋包含萬用字元和 RegEx 模式的字串,您可以使用 FINDSTR 命令。
如果您在相同的命令列中使用 /c 和 /v ,此命令會顯示不包含指定字串的行數。 如果您在相同的命令列中指定 /c 和 /n,find 會忽略 /n。
此命令無法辨識歸位字元。 當您使用此命令在包含歸位字元的檔案中搜尋文字時,您必須將搜尋字串限制為可在歸位字元之間找到的文字 (也就是說,不可能被歸位字元中斷的字元串)。 例如,如果單字「tax」和「file」之間出現歸位字元,則此命令不會回報符合字串「tax file」的項目。
此命令接受檔案名稱的萬用字元。 在檔案 (或多個檔案) 中搜尋時,它會列印已處理檔案,檔案前面加上 10 個破折號。
Find 命令無法讀取替代資料流。 若要在替代資料流中搜尋,請使用 findstr、more 或 for /f 命令。
範例
若要顯示 pencil.md 中包含字串 pencil Sharpener 的所有行,請輸入:
find "pencil sharpener" pencil.md
若要找到文字「科學家將他們的論文標記為僅供討論。這不是最終報告。」 (包括引號),在 report.txt 檔案中輸入:
find """The scientists labeled their paper for discussion only. It is not a final report.""" < report.txt
若要搜尋一組檔案,您可以使用萬用字元。 若要在目前目錄中搜尋副檔名為 .bat 且包含字串 PROMPT 的檔案 (不區分大小寫),請輸入:
find /i "PROMPT" *.bat
若要在包含字串 CPU 的目錄中尋找檔案名稱,請使用管道 (|) 將 dir 命令的輸出導向至 find 命令,如下所示:
dir c:\temp /s /b | find "CPU"
尋找所有不包含代理程式的執行中程序:
tasklist | find /v /i "agent"
檢查服務是否正在執行中:
sc query Winmgmt | find "RUNNING" >nul 2>&1 && (echo service is started) || (echo service is stopped)