中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-29 23:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]如何统计某一段的数据? 查看 711 回复 6
楼 主 [已结]如何统计某一段的数据? 发表于 2008-11-24 10:40 ·  中国 广东 广州 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
我有一段数据,可以是用空格或逗号分隔,如:
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 ]
2 发表于 2008-11-24 12:59 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
@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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
wjcing +2 2008-11-24 15:14
3 发表于 2008-11-24 13:51 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@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
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
moniuming +3 2008-11-24 14:00
wjcing +2 2008-11-24 15:14
4 发表于 2008-11-24 14:04 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线

@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
本帖最近评分记录 (共 3 条) 点击查看详情
评分人分数时间
tireless +3 2008-11-24 14:07
moniuming +3 2008-11-24 14:08
wjcing +2 2008-11-24 15:14
简单!简单!再简单!
5 发表于 2008-11-24 15:13 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
谢谢三位高手了.原来是先定义变量..之后用defined判断变量存不存在....

又学了一招..谢谢各位了...哈哈...
6 发表于 2008-11-24 15:22 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
建议用4楼的代码。3楼和2楼把要统计和不要统计的数字都设置到了变量,很浪费虚拟内存的说。记得有一次我反复运行了很多命令,设置了很多变量,后来感觉系统变慢了,再后来出现“虚拟内存不足”的提示...
7 发表于 2008-11-24 15:24 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
好的..谢谢tireless的建议..
论坛跳转: