中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 17:59
47,811 主题排行 / 349,896 发帖 / 今日 1 篇 / 48,254 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何统计某个字符串在文本中出现的次数?
可打印版本  2,997 / 5
第1楼 namejm 发表于 2006-06-14 19:39
荣誉版主 发帖 1,737 积分 5,226 来自 成都
如何统计某个字符串在文本中出现的次数?
  比如有个文本文件,里面有几行内容,比如:
  1,2,3,4
7,8,9,10
……
  如何统计其中逗号的个数?
第2楼 bagpipe 发表于 2006-06-15 10:53
银牌会员 发帖 425 积分 1,144 来自 北京
其实对于此类题目我并没有很好的办法,本人觉得局限性也很大,没有找到很好的办法解决,不过楼主可以试试以下代码:

@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楼 piziliu2004 发表于 2006-06-15 13:50
中级用户 发帖 139 积分 321
to: bAGPIPE

set a=%a:*,=%是什麼意思.?
第4楼 kcdsw 发表于 2006-06-15 15:23
中级用户 发帖 179 积分 404
看帮助

set 变量名=%变量:1=2%
这个意思是说 用=后边的2替换前边的1
第5楼 namejm 发表于 2006-06-15 16:07
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  感谢bagpipe,在你的代码基础上,我稍加改造就能用了。
  ——你说的局限性应该是if "%a%"=="这里是最后一个逗号后面内容" goto end这句要手工输入内容吧?
第6楼 bagpipe 发表于 2006-06-16 08:30
银牌会员 发帖 425 积分 1,144 来自 北京
我所说的局限性并非namejm兄所说,其实“最后一个逗号后面的内容”我可以得到,我所说的局限性就是因为你把文件中所有字符都赋值给一个变量,而这个变量最大能够承受多少字符,如果最后逗号后面没有字符,这种情况就不成了
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023