用批处理 查找TXT文件内的字符并统计出现的次数

例如
a.txt文件内的内容如下:
33 33 44 55 44 33 44 44
-----------------------------
要能查找出特定字符并统计出现的次数
例如:
我要查找33 显示的结果是 3
查找55 结果是 1
314ccp 写的批处理可能是我的Win7系统原因,所以没有采用。 但答案是非常满意的。
zhiqiran 提供的软件很实用。
感谢两位朋友的帮助!

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
/*&cls&echo off
rem 统计一个指定字符串在一个txt文本文件里出现的次数
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "txtfile=a.txt"
set "findword=指定字符串"
if not exist "%txtfile%" (echo;"%txtfile%" 未找到&pause&exit)
type "%txtfile%"|cscript -nologo -e:jscript "%~f0" "%findword%"
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
var text=WSH.StdIn.ReadAll();
var str=WSH.Arguments(0);
var index=0,count=0;
while((index=text.indexOf(str, index)) != -1){
count+=1;
index=index+str.length;
}
WSH.echo(count);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-21
将A文件拖放到批处理的上方放开运行,代码如下:
@echo off&setlocal enabledelayedexpansion
if %1=="" (echo 请拖放文本到批处理图标&pause&exit) else (
set/p #=输入要查找的字符:)
set/pstr=<%1
for %%1 in (!str!)do if "%%1"=="!#!" set/a .+=1
echo !#!出现了!.!次
pause
第2个回答  2010-01-22
推荐用软件Replace Pioneer来做,很简单,详细步骤:

1. 打开Tools->Pattern Counter菜单
2. 选中File/http选项,并在右边选择待处理文件名
3. 选中Word行,按Detail按钮,即得出各词的统计:
Number Word
============
4 44
3 33
1 55
============

如想自己统计特定的字符串,可以按以下步骤:
4. 点击Clear按钮
5. 点击Add按钮,在Name输入33,在Pattern=>下面输入\b33\b点击OK
6. 重复第4步,在Name输入55,在Pattern下面输入\b55\b点击OK
7. 点击Count即可得出33和55的出现次数本回答被提问者采纳
相似回答