[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何查找文件中指定字符并打印查询的txt文件名?

某文件夹(含多个子文件夹)内包含多个txt文件。txt文件中有以“名称”为关键字的行内容,形如:

名称:******/**********  (*代表不固定长度字符)

目的:查找符合条件(1.行包含"名称" 2.同行中必须包含"/")的txt文件并将查找结果打印到同一个txt文件中,不符合条件的txt文件名不打印。

比如,文件1、文件2、文件3符合查找条件,就把这3个文件名列出在某一个txt文件中。结果是:

文件1.txt
文件2.txt
文件3.txt
......


恳求各位前辈、老师、高手勇跃献技!

谢谢了!

[ 本帖最后由 plues 于 2010-10-6 00:57 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
三人行必有我师,择其善者而师之。

“将查找结果打印到同一个txt文件中”是啥意思?举个例子说说?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

比如,文件1、文件2、文件3符合查找条件,就把这3个文件名列出在某一个txt文件中。结果是:

文件1.txt
文件2.txt
文件3.txt
......
三人行必有我师,择其善者而师之。

TOP

  1. @echo off
  2. for %%i in (*.txt) do (
  3.     type "%%i"|find "名称" >"Find_%%i.txt"
  4.     type "Find_%%i.txt"|find "/" && echo %%i>>Result.tmp
  5.     del "Find_%%i.txt"
  6. )
  7. ren result.tmp result_txt.txt
  8. pause
复制代码
水平有限...Sorry

TOP

回复 4楼 canyuexiaolang 的帖子

canyuexiaolang老师太谦虚了^_^

代码很好,很强大。目的达到了。只有一点点的不足,就是要将父文件夹及子文件夹内所有的txt文件搜索出来并复制到批处理同一文件夹下才可。如果再修改一下代码就锦上添花啦!

多谢啦,请受学生一拜,呵呵!
三人行必有我师,择其善者而师之。

TOP

请将要求更新到顶楼。
  1. @echo off
  2. set "folder=C:\test"
  3. findstr.exe /irm "名称.*/" "%folder%\*.txt" > result.txt
  4. for /f "delims=" %%a in (result.txt) do echo copy "%%a" "%~dp0"
  5. pause
复制代码

TOP

回复 6楼 powerbat 的帖子

多谢powerbat老师两次出手相助。原代码findstr.exe后面缺少了参数s,加上后,问题圆满解决。

谢谢了,呵呵!
三人行必有我师,择其善者而师之。

TOP

  1. @echo off
  2. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do (
  3. dir /b /a-d /b /s "%%i\*QQ*.*" >nul 2>nul >>body.txt
  4. )
  5. rem 全盘搜索含有某关键词的文件
  6. pause
  7. @echo off
  8. for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype='3'" get caption') do cd /d %%a&&(for /r  %%i in (*cjb*) do echo %%i)
  9. rem 全盘搜索带有cjb字符的文件
  10. pause
复制代码
1

评分人数

TOP

返回列表