Board logo

标题: [文本处理] 请问用批处理怎么批量查找文本的内容? [打印本页]

作者: zahirll    时间: 2011-3-10 06:59     标题: 请问用批处理怎么批量查找文本的内容?

我有一文件夹,文件夹下有无数文件和文件夹,有ASP的TXT的PHP的HTML的等等,这些文本文件,我想用一句批处理查询并列出这些文件里含有指定字符的文件,比如含有“联盟”这两个字符的所有文件,怎么写?必须要一句批处理完成,请问FOR能做到吗?
哦,忘了,必须要用FOR语句完成,并且只能用一句语句完成,万能的管理,我知道你能行的。,谢谢了

[ 本帖最后由 zahirll 于 2011-3-10 07:09 编辑 ]
作者: wc726842270    时间: 2011-3-10 08:19

放在相应的文件夹下
  1. @echo off
  2. echo 含有"联盟"的文件有:
  3. for /f "delims=:" %%i in ('findstr "联盟" *^|findstr /v "bat"') do echo %%i
  4. pause
复制代码

作者: zahirll    时间: 2011-3-10 09:05

楼上再帮忙改改哦,我想这样直接在CMD下运行这一句批处理命令就直接得出结果,而不是保存成BAT执行
for /f "delims=:" %i in ('findstr "联盟" *^|findstr /v "bat"') do echo %i
路径也写在这一句里
作者: wc726842270    时间: 2011-3-10 09:22     标题: 回复 3楼 的帖子

CMD下显示不乱么?
for /f "tokens=1,2 delims=:" %i in ('findstr "联盟" "相应目录\*.*"') do echo %i:%j
作者: zahirll    时间: 2011-3-10 09:26

条件之允许这样,没办法,要是有查找的字符有特定字符怎么办?
不如“<%@ LANGUAGE = VBScript.Encode %>”想找这一串字符?好像不能执行了哦?
有办法解决吗?
你的QQ多少加你请教写问题
作者: liion631818    时间: 2011-3-10 12:26

cmd下也可以输入很多句的~~
作者: CrLf    时间: 2011-3-10 12:37

不明白为什么一定要用for呢?
findstr /l /m "联盟" *.*
作者: zahirll    时间: 2011-3-10 21:00

条件之允许这样,没办法,要是有查找的字符有特定字符怎么办?
不如“<%@ LANGUAGE = VBScript.Encode %>”想找这一串字符?好像不能执行了哦?
有办法解决吗?
作者: netbenton    时间: 2011-3-10 22:02

仅仅是这样功能的话,楼主可以试试系统的文件搜索功能,不但可以指定要找的文件内容,文件名又可用通配符,还可以指定时间段,以及查找的目录范围的。
作者: zahirll    时间: 2011-3-10 22:10

版主,能那样的话我还需要来问嘛,呵呵
作者: Batcher    时间: 2011-3-11 20:13     标题: 回复 8楼 的帖子

啥样的条件只允许使用一句for,但不允许使用一句findstr?
作者: Batcher    时间: 2011-3-11 20:14     标题: 回复 5楼 的帖子

特殊字符请自行转义




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2