中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 16:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 高手指点一下,关于“%ComSpec% /cset=……” 查看 1,131 回复 7
楼 主 高手指点一下,关于“%ComSpec% /cset=……” 发表于 2007-02-15 12:26 ·  中国 河北 唐山 联通
新手上路
积分 14
发帖 5
注册 2006-06-20 13:37
20年会员
UID 57313
性别 男
状态 离线
%ComSpec% /cset,=秋个好凉天道却,休还说欲,休还说欲&for,/l,%i,in,(18,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul


我在网上经常见到与上面类似的代码,将这段代码输入运行中就能逐个将汉字通过命令提示符显示出来。
我对32位控制台批处理的研究还处在起步阶段,想向高手讨教一下上面这段代码的运行原理,希望各位不吝赐教。
谢谢啦!
2 发表于 2007-02-15 13:02 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
3 发表于 2007-02-15 13:41 ·  中国 河北 唐山 联通
新手上路
积分 14
发帖 5
注册 2006-06-20 13:37
20年会员
UID 57313
性别 男
状态 离线
原来早就有
不过,对于“set/p= %,:~%i,1%<nul”中的“%,:~%i,1%”解释得还是不够详细具体。
还是谢谢你!
4 发表于 2007-02-15 14:04 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
变量,从%i位开始取,取一个长度的字符

如果a=qwert
q是第0位,w是第1位,e是第2位
%a:~2,1%返回的是e
5 发表于 2007-02-15 14:16 ·  中国 河北 唐山 联通
新手上路
积分 14
发帖 5
注册 2006-06-20 13:37
20年会员
UID 57313
性别 男
状态 离线
恩,应该是这么回事
可是请问您是从哪知道关于“%a:~2,1%”的解释的?
可能是我见识短,我以前从没见过这种写法
windows的帮助里有吗?
6 发表于 2007-02-15 21:05 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
关于 “%a:~2,1%” 原理的解释在 SET 命令中:)
执行 SET /? 可以看到详尽的解释。


另: SET /?
   IF /?
   FOR /?

几乎最常用的一些参数一般不需要或不太可能都能背下来,其实只要记住上面3个命令,用的时候 /? 加上帮助的参数,这样就可随查所需:)

(只要记住上面3个命令和随时查看它们的帮助信息-大约了解哪些应用出自哪个命令就行啦,这也是自我了然的学习捷径:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
7 发表于 2007-02-15 22:29 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 866
发帖 415
注册 2005-12-04 11:19
20年会员
UID 46459
状态 离线
高手呀。
8 发表于 2007-03-08 04:34 ·  中国 四川 成都 电信
中级用户
★★
积分 297
发帖 135
注册 2006-10-21 12:00
19年会员
UID 67627
性别 男
状态 离线
命令 /? 是永远的老师!
论坛跳转: