
在 Windows 的命令提示符(CMD)里,我们有两个常常用来查找文件内容的命令:find 和 findstr。
它俩的作用有点像“文件里的 Ctrl + F”,但一个简单、一个强劲。下面我们一起来看看怎么用。
一、find命令 —— 简单好用的小工具
find 是最基础的搜索命令,用来在文件里找有没有某个字符串。
✅ 基本格式:
find [参数] "要找的内容" [文件名]
常见参数:
| 
 参数  | 
 意思  | 
| 
 /i  | 
 忽略大小写(列如 “Error” 和 “error” 当成一样)  | 
| 
 /n  | 
 显示行号  | 
| 
 /v  | 
 反选,显示不包含关键字的行  | 
| 
 /c  | 
 只显示匹配的行数,不显示内容  | 
举几个例子:
1️⃣ 找出 server.log 文件里含有“error”的行:
find "error" server.log
2️⃣ 不区分大小写:
find /i "error" server.log
3️⃣ 只看有几行匹配:
find /c "error" server.log
4️⃣ 反着来,显示不含“error”的行:
find /v "error" server.log
5️⃣ 顺便显示行号:
find /n "error" server.log
小结一下:
find 命令简单、直接,适合查一个文件、一个关键字的情况。
二、findstr命令 —— 升级版,更强更灵活
findstr 就是 find 的进阶版,功能更全。
它不仅能查,还能用正则表达式、查多个关键字、甚至能递归搜索文件夹里的所有文件。
✅ 基本格式:
findstr [参数] "要找的内容" [文件名或路径]
常见参数:
| 
 参数  | 
 意思  | 
| 
 /i  | 
 忽略大小写  | 
| 
 /s  | 
 连子文件夹一起搜  | 
| 
 /n  | 
 显示行号  | 
| 
 /m  | 
 只显示包含关键字的文件名(不显示内容)  | 
| 
 /r  | 
 使用正则表达式  | 
| 
 /c:”字符串”  | 
 准确匹配带空格的完整短语  | 
| 
 /v  | 
 显示不包含关键字的行  | 
举例说明:
1️⃣ 在 server.log 中找“error”:
findstr "error" server.log
2️⃣ 忽略大小写:
findstr /i "error" server.log
3️⃣ 查找整个文件夹及子文件夹:
findstr /s "error" *.log
4️⃣ 只看哪些文件含有“error”:
findstr /s /m "error" *.log
5️⃣ 搜多个关键字:
findstr "error warning fail" server.log
6️⃣ 搜一个短语(列如“connection timeout”):
findstr /c:"connection timeout" server.log
7️⃣ 用正则表达式找 IP 地址:
findstr /r "[0-9]*.[0-9]*.[0-9]*.[0-9]*" access.log
⚖️ 三、两者对比一下
| 
 功能  | 
 find  | 
 findstr  | 
| 
 多关键字搜索  | 
 ❌ 不行  | 
 ✅ 可以  | 
| 
 递归搜索子目录  | 
 ❌ 不行  | 
 ✅ 可以  | 
| 
 支持正则表达式  | 
 ❌ 不行  | 
 ✅ 可以  | 
| 
 只显示文件名  | 
 ❌ 不行  | 
 ✅ /m 可以  | 
| 
 忽略大小写  | 
 ✅ /i  | 
 ✅ /i  | 
| 
 简单易用  | 
 ✅  | 
 ⚠️ 稍复杂但更强劲  | 
四、几个实用小技巧
1️⃣ 查找日志文件中所有报错的文件:
findstr /s /m "error" *.log
2️⃣ 查找所有子目录下包含“timeout”的行并显示行号:
findstr /s /n /i "timeout" *.txt
3️⃣ 想数一数“error”出现了几次,可以这么写:
findstr "error" server.log | find /c /v ""
这里是把 findstr 的结果再交给 find 去统计数量。
总结一下
- find:简单版,只能在文件里找某个词。
 - findstr:升级版,能查多个词,还能用正则表达式、递归文件夹、显示文件名。
 
一句话总结
要快用 find,要强用 findstr。
如果这篇文章对你有协助,欢迎点赞、收藏、转发!关注我,学习更多干货知识!
评论区留言,领取《从零到精通:CMD命令实战全能教程》电子书!
                
                
                
                
                
                
                
                
                
用cmder或者wsl下面的bash,bash这个掌握了基本上可以纵横天下,所有操作系统通用。
真不戳💪