相比findstr命令find命令使用起来简单很多,只有五个选择开关。基本能够满足日常使用。find 的使用也和linux中的grep差不多,如果要使用grep -e 和 egrep 的效果可以使用 findstr 命令。
find [/v] [/c] [/n] [/i] [/off[line]] <"string"> [[:][][...]]
| 参数 | 说明 |
|---|---|
| /v | 显示不包含指定 的所有行。 |
| /c | 计算包含指定 行并显示总计的行。 |
| /n | 在每行前面加上文件的行号。 |
| /i | 指定搜索不区分大小写。 |
| [/off[line]] | 不跳过已设置脱机属性的文件。 |
<"string"> | 必需。 指定要搜索) 用引号括起来的字符组 (。 |
[ | 指定要在其中搜索指定字符串的文件的位置和名称。 |
| /? | 在命令提示符下显示帮助。 |
| 退出代码 | 说明 |
|---|---|
| 0 | 找到搜索的字符串 |
| 1 | 未找到搜索的字符串 |
| 2 | 未找到搜索的文件或提供了无效的命令行开关 |
a A。 但是,如果使用 /i,搜索将变得不区分大小写,并且会被视为a A同一个字符。CTRL-X 或 CTRL-Z。下面通过几个例子可以来熟悉使用:
1、使用类似于linux中的 ls |grep "tset" ,那么在Windows cmd 使用 find 实现:
dir | find "test"
2、在test.txt找到包含 test 的所有行:
find "test" test.txt
3、在 test.txt 中查找 "hello word!" , 包含双引号的内容:
find """hello word!""" < test.txt
4、在 test.txt 中不区分大小的查找 test ,并输出行号:
find /i /n "text" test.txt
5、查找不包含 agent 的所有正在运行的进程数量
tasklist | find /v /i /c "agent"
6、检查 Winmgmt 服务是否正在运行:
sc query Winmgmt | find "RUNNING" >nul 2>&1 && (echo service is started) || (echo service is stopped)
可以多尝试联系,还有更多用法待解锁。