中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 14:43
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 关于批处理的命令分隔符
可打印版本  1,839 / 7
第1楼 cao7113 发表于 2008-05-17 13:09
初级用户 发帖 19 积分 50
关于批处理的命令分隔符
在其它高级语言中一般都有明确的语句分隔符(如C/C++,Java中的分号),而dos批处理中一般直接给出命令即可,那么解释器执行命令是靠什么来分隔命令语句的呢?
如果想在某条件成立时执行多条语句,一般会用()把多条语句括起来,各条命令语句间再以换行分隔,如下面的条件语句:

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

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


有没有做过相关研究的大侠,望多多指教,无比感谢!!!
第2楼 lxmxn 发表于 2008-05-19 16:06
版主 发帖 4,938 积分 11,386
用 & 也可以在同一行连接多个命令吧?
第3楼 cao7113 发表于 2008-05-20 09:19
初级用户 发帖 19 积分 50
从帮助中摘录的相关内容
以下为从从帮助中摘录的相关内容,可以很好的回答该问题:

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



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


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


字符
语法
定义


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


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


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


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


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




注意

“与”符号 (&)、管道符号 (|) 以及括号 () 是特殊字符,将它们作为参数传递时,必须在其前面加上转义字符 (^) 或引号。
如果某个命令成功完成操作,则该命令就返回零 (0) 退出代码或不返回任何退出代码。有关退出代码的详细信息,请参阅 Microsoft Windows Resource Kit。
第4楼 prodigall 发表于 2008-10-14 15:50
初级用户 发帖 36 积分 80
學習了
不過我在系統的幫助中找不到以上內容啊
第5楼 5566ljlj 发表于 2009-03-14 03:02
初级用户 发帖 27 积分 42
学习学习了
第6楼 nobodytt 发表于 2009-03-14 06:26
初级用户 发帖 33 积分 78
哪么一条很长的命令语句如何分成多行来写呢?

比如:cmd | lmod1 | lmod2 | lmod3 | ... > 1.txt
第7楼 linge 发表于 2009-03-19 01:28
新手上路 发帖 10 积分 11
可以使用^来分行的,你可以试试麻
第8楼 QOIQoc 发表于 2009-03-19 07:25
初级用户 发帖 51 积分 48
如果像设置变量:

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

好像要先预处理
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023