中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]如何统计某一段的数据?
作者:
标题: [已结]如何统计某一段的数据? 上一主题 | 下一主题
wjcing
初级用户





积分 71
发帖 59
注册 2007-12-27
状态 离线
『楼 主』:  [已结]如何统计某一段的数据?

我有一段数据,可以是用空格或逗号分隔,如:
88,59,60,89,88,99,100,88,59,87,56,84,67,78,90,88,80,99,81,80,83,85
我想把某一段数据的个数找出来,如我想把80-89段统计出来如下:
80:2 81:1 82:0 83:1 84:1 85:1 86:0 87:1 88:4 89:1
我对批处理还不是很熟,试了很久了.请问把它们统计出来?
谢谢先了.

[ Last edited by HAT on 2008-11-24 at 16:13 ]

2008-11-24 10:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 2 楼』:  


@echo off&Setlocal Enabledelayedexpansion
set "str=88,59,60,89,88,99,100,88,59,87,56,84,67,78,90,88,80,99,81,80,83,85"
set "str=%str:,= %"
for %%a in (%str%) do (set /a _%%a+=1)
for /l %%a in (80 1 89) do (
  if not defined %%a (
    set %%a=god
    if "!_%%a!"=="" set _%%a=0
    set /p=%%a:!_%%a! <nul
  )
)
echo.&pause
[ Last edited by moniuming on 2008-11-24 at 13:15 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 wjcing 分数: +2  时间:2008-11-24 15:14


2008-11-24 12:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 3 楼』:  


@echo off
set str=88,59,60,89,88,99,100,88,59,87,56,84,67,78,90,88,80,99,81,80,83,85
for %%a in (%str%) do set /a #%%a+=1
for /l %%a in (80,1,89) do (
  if not defined #%%a set #%%a=0
  call set /p=%%a:%%#%%a%% <nul
)
echo.&pause


   此帖被 +5 点积分      点击查看详情   
评分人:【 moniuming 分数: +3  时间:2008-11-24 14:00
评分人:【 wjcing 分数: +2  时间:2008-11-24 15:14


2008-11-24 13:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 4 楼』:  


@echo off&Setlocal Enabledelayedexpansion
set "str=88,59,60,89,88,99,100,88,59,87,56,84,67,78,90,88,80,99,81,80,83,85"
   for %%a in (%str%) do if %%a leq 89 if %%a geq 80 set /a _%%a+=1
     for /l %%a in (80 1 89) do if defined _%%a (set /p=%%a:!_%%a! <nul)else set /p=%%a:0 <nul
echo.&pause


   此帖被 +8 点积分     点击查看详情   
评分人:【 tireless 分数: +3  时间:2008-11-24 14:07
评分人:【 moniuming 分数: +3  时间:2008-11-24 14:08
评分人:【 wjcing 分数: +2  时间:2008-11-24 15:14




简单!简单!再简单!
2008-11-24 14:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wjcing
初级用户





积分 71
发帖 59
注册 2007-12-27
状态 离线
『第 5 楼』:  

谢谢三位高手了.原来是先定义变量..之后用defined判断变量存不存在....

又学了一招..谢谢各位了...哈哈...

2008-11-24 15:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 6 楼』:  

建议用4楼的代码。3楼和2楼把要统计和不要统计的数字都设置到了变量,很浪费虚拟内存的说。记得有一次我反复运行了很多命令,设置了很多变量,后来感觉系统变慢了,再后来出现“虚拟内存不足”的提示...

2008-11-24 15:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wjcing
初级用户





积分 71
发帖 59
注册 2007-12-27
状态 离线
『第 7 楼』:  

好的..谢谢tireless的建议..

2008-11-24 15:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: