找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 90369|回复: 20

[文本处理] 批处理如何批量查找文本内容中包含指定字符串的txt文件?

[复制链接]
发表于 2015-1-11 13:05:40 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-4-12 19:22 编辑

好几千个txt文本,怎么批量筛选txt内容中包含“姓名”的txt,是内容包含,不是文件名包含哦。
求大神指导!!!!
发表于 2015-1-11 13:41:37 | 显示全部楼层
for /r 遍历文件 find寻找,找到就把文件路径输出
 楼主| 发表于 2015-1-11 13:48:55 | 显示全部楼层
大神,我是小白,不太明白,有代码吗?
 楼主| 发表于 2015-1-11 13:50:22 | 显示全部楼层
回复 2# mms0536


   
大神,我是小白,不太明白,有代码吗?
发表于 2015-1-11 13:53:09 | 显示全部楼层
回复 4# nihaoareyou


    那你把你的一个几个txt压缩上传看看,重要内容自己替换掉
 楼主| 发表于 2015-1-11 14:05:20 | 显示全部楼层
回复 5# mms0536


    比如这三个文件中,我想筛选出包含“姓名”的那个txt。
实际上,我有上万个txt。
 楼主| 发表于 2015-1-11 14:10:58 | 显示全部楼层
回复 5# mms0536

    比如这三个文件中,我想筛选出包含“姓名”的那个txt。
实际上,我有很多个txt。
发表于 2015-1-11 14:21:34 | 显示全部楼层
本帖最后由 mms0536 于 2015-1-11 14:22 编辑

回复 7# nihaoareyou
路径改成你的txt所在的目录
现在是把包含姓名的txt文件路径放到了d:\include_name.txt ,你要是向移动文件或者复制文件,自己修改下
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /r "路径" %%a in (*.txt) do (
  4. find "姓名" %%a
  5. if "!errorlevel!"=="0" echo %%a >>d:\include_name.txt
  6. )
  7. setlocal DiskableDelayedExpansion
  8. echo 已完成,路径保存在d:\include_name.txt
  9. pause >nul
复制代码
 楼主| 发表于 2015-1-11 14:32:26 | 显示全部楼层
回复 8# mms0536


    感谢大神! 能直接将包含“姓名”的txt文件输出到指定文件夹内吗?要不然文件太多,我还需要一个一个查找复制出来,太费时了。
发表于 2015-1-11 14:37:58 | 显示全部楼层
  1. @echo off
  2. if not exist d:\include_name mkdir d:\include_name
  3. setlocal EnableDelayedExpansion
  4. for /r "路径" %%a in (*.txt) do (
  5. find "姓名" %%a
  6. if "!errorlevel!"=="0" copy %%a d:\include_name\*.* /y
  7. )
  8. setlocal DiskableDelayedExpansion
  9. echo 已完成,保存在d:\include_name\
  10. pause >nul
复制代码
回复 9# nihaoareyou
发表于 2015-1-11 14:44:13 | 显示全部楼层
建议直接用 findstr 找出所有包含“姓名”的文件,而不是每个文件都启动一次 find 或 findstr。
  1. findstr /m /c:"姓名" *.txt
复制代码
 楼主| 发表于 2015-1-11 14:48:42 | 显示全部楼层
回复 10# mms0536


    太感谢您了,大神!!!狂点赞!!!
    愿您一切顺利,心想事成。
发表于 2015-1-11 14:55:31 | 显示全部楼层
回复 11# tmplinshi


    谢谢,又学了一招...
findstr用的很少
目前水平就是堆叠命令,还没深入研究每个命令...
感谢指点
 楼主| 发表于 2015-1-11 14:57:14 | 显示全部楼层
回复 11# tmplinshi


    请问这个怎么具体操作呢?
发表于 2015-1-11 15:00:03 | 显示全部楼层
回复 12# nihaoareyou


    你楼上才是大神,经过指点,优化后如下,你试试吧
  1. @echo off
  2. for /f "delims=""" %%a in ('findstr /m /c:"姓名" "txt所在路径\*.txt"') do (
  3. copy %%a d:\include_name\*.*
  4. )
  5. echo 执行完毕
  6. pause >nul
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 08:47 , Processed in 0.022231 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表