可用windows批处理脚本自动搜索含关键字的文件:搜文件名用dir /s /b,搜内容用findstr /s /i,支持通配符、大小写忽略、扩展名限定及结果重定向;可结合for循环实现复制或移动等自动化操作。
可以用 windows 批处理(.bat)脚本在指定目录下自动搜索含关键字的文件,核心是组合 dir /s 或 for /r 遍历文件 + findstr 检查内容。操作不依赖第三方工具,纯系统命令即可完成。
只搜文件名含关键词
适合快速定位命名中带关键词的文件(如“报告2024”“张三合同”),不检查文件内容:
- 用 dir /s /b "关键词*" "路径" 直接列出匹配的完整路径,例如:
dir /s /b "张三*" "D:\资料" - 若需保存结果到文本,加重定向:
dir /s /b "张三*" "D:\资料" > found_files.txt - 注意:通配符 * 放关键词前后均可,/i 可忽略大小写,/a:-d 排除文件夹(默认只列文件)
搜索文件内容含关键词
真正读取 .txt、.log、.csv 等文本文件内部文字,推荐用 findstr:
- 基础命令:
findstr /s /i "关键词" "D:\资料\*.txt"
其中 /s 表示递归子目录,/i 忽略大小写,*.txt 限定扩展名 - 想只显示文件名(不显示匹配行):
findstr /s /i /m "关键词" "D:\资料\*.txt" - 支持多个关键词(用空格分隔):
findstr /s /i "error warning fatal" "D:\日志\*.log"
批量处理:找到后自动复制或移动
把搜索和动作连起来,做成自动化流程:
- 先设变量(方便修改):
set "KEY=发票"
set "SRC=D:\财务"
set "DST=E:\发票归档" - 遍历 + 判断 + 移动(注意双引号防空格路径出错):
for /f "delims=" %%a in ('findstr /s /i /m "%KEY%" "%SRC%\*.txt" 2^>nul') do move "%%a" "%DST%\" - 若目标文件夹不存在,加一句创建:
if not exist "%DST%" mkdir "%DST%" - 复制改用 copy,移动时加 /y 可跳过覆盖确认
处理多个关键词或复杂条件
当关键词太多或需灵活控制,建议外部存关键词列表:
- 新建 keywords.txt,每行一个词(如:客户 合同 付款)
- 用 findstr /g:keywords.txt /s /i "%SRC%\*.txt" 批量匹配
- 也可用 for /f 逐行读 keywords.txt,嵌套执行 findstr,实现更精细逻辑(比如按关键词分类移动)










