中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何统计某个字符串在文本中出现的次数?
作者:
标题: 如何统计某个字符串在文本中出现的次数? 取消高亮 | 上一主题 | 下一主题
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『楼 主』:  如何统计某个字符串在文本中出现的次数?

  比如有个文本文件,里面有几行内容,比如:
  1,2,3,4
      7,8,9,10
      ……
  如何统计其中逗号的个数?

2006-6-14 19:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 2 楼』:  

其实对于此类题目我并没有很好的办法,本人觉得局限性也很大,没有找到很好的办法解决,不过楼主可以试试以下代码:

@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% 个逗号

2006-6-15 10:53
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
piziliu2004
中级用户

过度热情


积分 321
发帖 139
注册 2006-3-21
状态 离线
『第 3 楼』:  

to: bAGPIPE  

set a=%a:*,=%是什麼意思.?

2006-6-15 13:50
查看资料  发送邮件  发短消息 网志  OICQ (16750931)  编辑帖子  回复  引用回复
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 4 楼』:  

看帮助

set 变量名=%变量:1=2%
这个意思是说 用=后边的2替换前边的1

2006-6-15 15:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:  

  感谢bagpipe,在你的代码基础上,我稍加改造就能用了。
  ——你说的局限性应该是if "%a%"=="这里是最后一个逗号后面内容" goto end这句要手工输入内容吧?

2006-6-15 16:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 6 楼』:  

我所说的局限性并非namejm兄所说,其实“最后一个逗号后面的内容”我可以得到,我所说的局限性就是因为你把文件中所有字符都赋值给一个变量,而这个变量最大能够承受多少字符,如果最后逗号后面没有字符,这种情况就不成了

2006-6-16 08:30
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: