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

[文本处理] 批处理怎样查找不包含指定字符串的文件?

查找D盘下所有文本文件,如果文本内容不包含www字符,则列出对应的文本文件的路径
请问如何实现?

  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
复制代码

TOP

本帖最后由 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
复制代码

TOP

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

TOP

回复 4# CrLf

无法过滤包含字符串的文件名
1

评分人数

    • CrLf: 感谢指正PB + 5

TOP

谢谢各位高手

TOP

回复 4# CrLf


哈哈,这是一个思维上的小陷阱。
如果不包含www字符的行确实存在,则 /v 仍然会列出包含www字符的文件。除非文件每一行都有www字符,/v 才能得到预期结果。
1

评分人数

    • CrLf: 感谢指正PB + 5

TOP

本帖最后由 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
复制代码

TOP

返回列表