在一个或多个文件中搜索文本字符串,并显示包含指定字符串的文本行。
语法:
find [/v] [/c] [/n] [/i] [/off[line]] <"string"> [[<drive>:][<path>]<filename>[...]]
参数
参数 | 说明 |
/v | 显示所有不包含指定 <string> 的行 |
/c | 计算包含指定的行并显示总数。<string> |
/n | 在每行前面加上文件的行号。 |
/i | 指定搜索不区分大小写。 |
[/off[line]] | 不跳过设置了脱机属性的文件。 |
退出代码
退出代码 | 描述 |
0 | 搜索到的字符串被找到 |
1 | 未找到搜索的字符串 |
2 | 未找到搜索的文件或给出了无效的命令行开关 |
- 如果不使用/i,此命令将搜索您为字符串指定的确切内容。例如,此命令以不同的方式处理字符。但是,如果使用/i,则搜索将变得不区分大小写,并且它将 和 视为同一字符。
a
A
a
A
- 如果要搜索的字符串包含引号,则必须对字符串中包含的每个引号使用双引号(例如,""此字符串包含引号""")。"
- 如果省略文件名,则此命令将充当筛选器,从标准输入源(通常是键盘、管道(|)或重定向文件)获取输入,然后显示包含字符串的任何行。
- 要退出控制台搜索,请使用 或 。
CTRL-X
CTRL-z
- 可以按任意顺序键入find命令的参数和命令行选项。
- 不能在搜索的字符串中使用通配符(*和?)。若要搜索具有通配符和正则表达式模式的字符串,可以使用FINDSTR命令。
- 如果在同一命令行中使用/c和/v,则此命令将显示不包含指定字符串的行的计数。如果在同一命令行中指定/c和/n,则 find忽略/n。
- 此命令不识别回车符。使用此命令在包含回车符的文件中搜索文本时,必须将搜索字符串限制为可在回车符之间找到的文本(即,不太可能被回车符打断的字符串)。例如,如果"税款"和"文件"这两个词之间出现回车申报表,则此命令不会报告字符串税号文件的匹配项。
- 该命令接受文件名的通配符。在文件(或多个文件)中搜索时,它将打印已处理文件的文件,该文件早于十个破折号。
- 查找命令无法读取备用数据流。要在备用数据流中进行搜索,请使用findstr、more或/f命令。
例子
若要显示 pencil.md 中包含铅笔卷笔刀的所有行,请键入:
find "pencil sharpener" pencil.md
为了找到文本,"科学家们将他们的论文标记为仅用于讨论。这不是一份最终报告。(包括引号)在报告中.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)