中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 23:13
楼 主 关于批处理的命令分隔符 发表于 2008-05-17 13:09 ·  中国 北京 光环新网
初级用户
积分 50
发帖 19
注册 2008-03-31 15:10
UID 114544
性别 男
状态 离线
在其它高级语言中一般都有明确的语句分隔符(如C/C++,Java中的分号),而dos批处理中一般直接给出命令即可,那么解释器执行命令是靠什么来分隔命令语句的呢?
如果想在某条件成立时执行多条语句,一般会用()把多条语句括起来,各条命令语句间再以换行分隔,如下面的条件语句:

if not "true"=="true" (echo true...
echo true1
echo true2...
)else (echo false0
echo false1
)

通过以上示例是不是说明,dos解释器是靠换行符分隔命令的。如果是,我们如何直接人工输入之,使得可以写出如下的语句效果(多条语句显示在同一行中):
cmd1[换行符]cmd2[换行符]cmd3


有没有做过相关研究的大侠,望多多指教,无比感谢!!!
2 发表于 2008-05-19 16:06 ·  中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
用 & 也可以在同一行连接多个命令吧?
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
cao7113 +1 2008-05-20 09:32
3 从帮助中摘录的相关内容 发表于 2008-05-20 09:19 ·  中国 北京 光环新网
初级用户
积分 50
发帖 19
注册 2008-03-31 15:10
UID 114544
性别 男
状态 离线
以下为从从帮助中摘录的相关内容,可以很好的回答该问题:

##------------------------------------------------------------------------------
使用多个命令和条件处理符号



使用条件处理符号可以从单个命令行或脚本运行多个命令。通过条件处理符号运行多个命令时,条件处理符号右边的命令根据条件处理符号左边的命令结果来发挥作用。例如,只有在前一个命令失败的情况下,才可能需要运行一个新命令。或者,只有在前一个命令成功时才可能需要运行一个新命令。


可以使用下表列出的特殊字符来传递多个命令。


字符
语法
定义


& [...]
command1 & command2
用来分隔一个命令行中的多个命令。Cmd.exe 运行第一个命令,然后运行第二个命令。


&& [...]
command1 && command2
只有在符号 && 前面的命令成功时,才用于运行该符号后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令运行成功时才运行第二个命令。


|| [...]
command1 || command2
只有在符号 || 前面的命令失败时,才用于运行符号 || 后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令未能运行成功(接收到大于零的错误代码)时才运行第二个命令。


( ) [...]
(command1 & command2)
用来分组或嵌套多个命令。


; 或者 ,
command1 parameter1;parameter2
用来分隔命令参数。




注意

“与”符号 (&)、管道符号 (|) 以及括号 () 是特殊字符,将它们作为参数传递时,必须在其前面加上转义字符 (^) 或引号。
如果某个命令成功完成操作,则该命令就返回零 (0) 退出代码或不返回任何退出代码。有关退出代码的详细信息,请参阅 Microsoft Windows Resource Kit。
4 发表于 2008-10-14 15:50 ·  中国 广东 深圳 联通
初级用户
积分 80
发帖 36
注册 2007-06-14 09:41
UID 91264
性别 男
状态 离线
學習了
不過我在系統的幫助中找不到以上內容啊
5 发表于 2009-03-14 03:02 ·  中国 湖南 常德 电信
初级用户
积分 42
发帖 27
注册 2009-02-24 16:42
UID 139744
性别 男
状态 离线
学习学习了
6 发表于 2009-03-14 06:26 ·  中国 内蒙古 包头 电信
初级用户
积分 78
发帖 33
注册 2008-12-09 12:08
UID 133305
性别 男
状态 离线
哪么一条很长的命令语句如何分成多行来写呢?

比如:cmd | lmod1 | lmod2 | lmod3 | ... > 1.txt
7 发表于 2009-03-19 01:28 ·  中国 广东 广州 电信
新手上路
积分 11
发帖 10
注册 2008-11-28 22:10
UID 132376
性别 男
状态 离线
可以使用^来分行的,你可以试试麻
8 发表于 2009-03-19 07:25 ·  中国 北京 联通
初级用户
★★
积分 48
发帖 51
注册 2009-03-03 23:23
UID 140498
性别 女
状态 离线
如果像设置变量:

set ae=%windir% & copy tes.txt %ae% & attrib +r %ae%\tes.txt

好像要先预处理
论坛跳转: