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

[文本处理] 批处理如何计算目录中含NG字符的文本个数?

[复制链接]
发表于 2012-5-10 09:43:10 | 显示全部楼层 |阅读模式
请问,D:\log目录中有3000个文本,命名无规则。

如何计算这3000个文本中,有多少个文本的内容是含有“NG”字符的?
发表于 2012-5-10 10:28:30 | 显示全部楼层
  1. for %%a in (*.txt) do find "NG" %%a&&set/A n+=1
  2. cls&call echo %%n%%
  3. pause
复制代码
 楼主| 发表于 2012-5-10 11:08:18 | 显示全部楼层
前辈,我试了下,好像不行,运行完后,没有统计结果出来。
文本的名字:A1853361A 0036133-1213_201204171621.txt
文本的内容:
0,2012041716212569,1A01STS00-600-G,A1853361A 0036133-1213,0,NG
0,2012041716212569,1A01STS00-600-G,A1853361A 0036133-1213,4,OK
1,2012041716212569,1A01STS00-600-G,A1853361A 0036133-1213,0,NG,1,0,432,213,216,889
1,2012041716212569,1A01STS00-600-G,A1853361A 0036133-1213,0,NG,1,213,432,213,216,1044

是什么原因? 文件名过长么?  在运行的CMD窗口里看到的信息是:
发表于 2012-5-10 11:23:09 | 显示全部楼层
for %%a in (*.txt) do find "NG" "%%a"&&set/A n+=1
cls&call echo %%n%%
pause
文件名有空格的问题,没注意。
 楼主| 发表于 2012-5-10 12:05:54 | 显示全部楼层
回复 4# yangfengoo


    好用了,嘿嘿! 谢谢您!
发表于 2012-5-10 12:58:03 | 显示全部楼层
回复 4# yangfengoo
  1. type *.txt 2>nul | find /c "NG"
复制代码
发表于 2012-5-10 21:38:17 | 显示全部楼层
二楼代码不对。如果这样的话,所得到的n值可能远远大于内容含有ng的文本数,因为,文本是分行解析的。
发表于 2012-5-10 21:49:59 | 显示全部楼层

  1. @echo off
  2. for %%i in (*.txt) do (
  3.    set "flag="
  4.    find /i "ng" "%%i">nul 2>nul&&(
  5.      if not defined flag set /a n+=1
  6.      set flag==
  7.    )
  8. )
  9. echo %n%
  10. pause
复制代码
发表于 2012-5-10 22:10:42 | 显示全部楼层
回复 7# lvsehuaxue


    能否给点测试数据来证明2楼代码什么情况下会出错?
发表于 2012-5-11 06:22:20 | 显示全部楼层

  1. findstr /m NG *.txt | find /c /i "txt"
复制代码

评分

参与人数 1技术 +1 收起 理由
lvsehuaxue + 1 非常简练

查看全部评分

发表于 2012-5-11 10:49:16 | 显示全部楼层
回复 6# gawk


    赞同这样简单的代码。亲们,不要老for啊
发表于 2012-5-12 11:35:46 | 显示全部楼层
回复 9# gawk
经过测试2楼不错,我画蛇添足。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 03:33 , Processed in 0.027298 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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