Board logo

标题: [文本处理] 批处理怎样查找不包含指定字符串的文件? [打印本页]

作者: wljboy    时间: 2012-6-11 18:37     标题: 批处理怎样查找不包含指定字符串的文件?

查找D盘下所有文本文件,如果文本内容不包含www字符,则列出对应的文本文件的路径
请问如何实现?
作者: apang    时间: 2012-6-11 19:07

  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d /b /s d:\*.txt') do (
  3.   findstr "www" "%%a">nul || echo %%a
  4. )
  5. pause
复制代码

作者: yangfengoo    时间: 2012-6-11 19:07

本帖最后由 yangfengoo 于 2012-6-11 21:50 编辑
  1. @echo off
  2. for /f "tokens=*" %%a in ('dir /s/b d:\*.txt') do findstr /i "www" "%%~a">nul||echo %%~a
  3. pause
复制代码

作者: CrLf    时间: 2012-6-11 19:53

  1. @findstr /m /s /v  www d:\*.txt
复制代码

作者: yangfengoo    时间: 2012-6-11 21:51

回复 4# CrLf

无法过滤包含字符串的文件名
作者: wljboy    时间: 2012-6-12 09:54

谢谢各位高手
作者: powerbat    时间: 2012-6-13 20:28

回复 4# CrLf


哈哈,这是一个思维上的小陷阱。
如果不包含www字符的行确实存在,则 /v 仍然会列出包含www字符的文件。除非文件每一行都有www字符,/v 才能得到预期结果。
作者: CrLf    时间: 2012-6-13 20:37

本帖最后由 CrLf 于 2012-6-13 20:45 编辑

回复 7# powerbat


我汗,确实如此,那就改成:
  1. @echo off
  2. findstr /m /s  www d:\*.txt>tmp
  3. dir /b /a-d d:\*.txt|findstr /v /x /g:tmp
  4. pause
复制代码





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