中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 19:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何统计某个字符串在文本中出现的次数?
楼 主 如何统计某个字符串在文本中出现的次数? 发表于 2006-06-14 19:39 ·  中国 四川 雅安 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  比如有个文本文件,里面有几行内容,比如:
  1,2,3,4
7,8,9,10
……
  如何统计其中逗号的个数?
2 发表于 2006-06-15 10:53 ·  中国 北京 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
UID 43784
来自 北京
状态 离线
其实对于此类题目我并没有很好的办法,本人觉得局限性也很大,没有找到很好的办法解决,不过楼主可以试试以下代码:

@echo off
setlocal enabledelayedexpansion
set a=
for /f "delims=" %%a in (要检索的文件.txt) do set a=!a!%%a
:back
set /a b+=1
set a=%a:*,=%
if "%a%"=="这里是最后一个逗号后面内容" goto end
goto back

:end
echo 共有 %b% 个逗号
3 发表于 2006-06-15 13:50 ·  中国 江苏 苏州 电信
中级用户
★★
过度热情
积分 321
发帖 139
注册 2006-03-21 17:19
UID 52521
性别 男
状态 离线
to: bAGPIPE

set a=%a:*,=%是什麼意思.?
4 发表于 2006-06-15 15:23 ·  中国 北京 鹏博士BGP
中级用户
★★
积分 404
发帖 179
注册 2006-03-30 14:44
UID 53056
状态 离线
看帮助

set 变量名=%变量:1=2%
这个意思是说 用=后边的2替换前边的1
5 发表于 2006-06-15 16:07 ·  中国 四川 雅安 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  感谢bagpipe,在你的代码基础上,我稍加改造就能用了。
  ——你说的局限性应该是if "%a%"=="这里是最后一个逗号后面内容" goto end这句要手工输入内容吧?
6 发表于 2006-06-16 08:30 ·  中国 北京 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
UID 43784
来自 北京
状态 离线
我所说的局限性并非namejm兄所说,其实“最后一个逗号后面的内容”我可以得到,我所说的局限性就是因为你把文件中所有字符都赋值给一个变量,而这个变量最大能够承受多少字符,如果最后逗号后面没有字符,这种情况就不成了
论坛跳转: