中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 22:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理中的命令分隔符 查看 1,068 回复 3
楼 主 批处理中的命令分隔符 发表于 2010-01-10 15:32 ·  中国 湖北 襄阳 联通
初级用户
积分 175
发帖 45
注册 2007-08-04 16:16
19年会员
UID 94640
性别 男
状态 离线

@echo off
:: 批处理中的命令分隔符 共5种
if,test==test,echo,逗号
if test==test echo 空格
if;test==test;echo;分号
if=test==test echo=等号
if test==test echo 制表符 tab
pause


由于制表符在论坛中无法显示,所以第五行自行替换测试

[ Last edited by q8249014 on 2010-1-10 at 15:34 ]
2 发表于 2010-01-10 18:46 ·  中国 陕西 西安 电信
初级用户
★★
积分 128
发帖 122
注册 2009-09-21 06:24
16年会员
UID 152378
性别 男
状态 离线
不是所有的分隔符都能替代空格
楼主可以测试以下情况:

set,a=1
echo %a%
pause
set;b=1
echo %b%
pause
set=c=1
echo %c%
pause
3 发表于 2010-01-10 20:46 ·  中国 湖北 襄阳 联通
初级用户
积分 175
发帖 45
注册 2007-08-04 16:16
19年会员
UID 94640
性别 男
状态 离线
这牵扯到一个预处理的问题,预处理的时候命令解释器是可以正常解释

以上五种分隔符的,预处理工作进行完毕后,cmd将命令语句提交给命

令主体,但是有些分隔符命令主体是不认识的,这就是为什么可以使用

set,=test 来定义的值为test的原因,也算是一个技巧吧。

[ Last edited by q8249014 on 2010-1-10 at 20:48 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
jarry0932 +2 2010-01-12 00:20
4 发表于 2010-01-12 00:20 ·  中国 陕西 西安 电信
初级用户
★★
积分 128
发帖 122
注册 2009-09-21 06:24
16年会员
UID 152378
性别 男
状态 离线
原来如此啊 ,还能定义[, ]变量,又长见识了 +2分 谢啦
论坛跳转: