单行与多个命令使用Windows批处理文件

我尝试了解批处理文件中单个命令行中的多个命令是如何工作的.
dir & md folder1 & rename folder1 mainfolder

和其他类似命令的情况,但&取代&&

dir && md folder1 && rename folder1 mainfolder

这两种情况有什么区别?

其他我想问的事情:

单行批发

dir & md folder1 & rename folder1 mainfolder

多行批发

dir
md folder1
rename folder1 mainfolder

这个单行和多行班在批处理文件程序方面是否相等?

还有一件我想知道的事情:

3.如果从main.bat调用其他批处理文件,它们是否独立运行,同时运行?主批处理文件不等待其他批处理文件中的结束程序?怎么做?

&安培;在两个命令之间简单地导致独立于第一个命令的结果执行两个命令.指挥权&在命令左后被执行完成独立于上一个命令的成功或错误,即独立于先前命令的退出/返回值.

&安培;&安培;导致第二个命令的条件执行.第二个命令只有在第一个命令成功的情况下执行,这意味着退出代码为0.

另见说明见Conditional Execution.

dir & md folder1 & rename folder1 mainfolder

因此是相等的

dir
md folder1
rename folder1 mainfolder

多行代替

dir && md folder1 && rename folder1 mainfolder

将会

dir
if not errorlevel 1 (
   md folder1
   if not errorlevel 1 (
      rename folder1 mainfolder
   )
)

如果不是错误级别1则意味着之前的命令没有终止,退出代码大于0.由于命令dir和md不会退出负值,只有0或更大(几乎所有的命令和控制台应用程序)和值0是退出代码成功,这是一个正确的方法来测试dir和md的成功执行.请参阅Microsoft支持文章Testing for a Specific Error Level in Batch Files.

其他有用的Stack Overflow主题关于errorlevel:

> Which cmd.exe internal commands clear the ERRORLEVEL to 0 upon success?
> What are the ERRORLEVEL values set by internal cmd.exe commands?

对于第三个问题的答案,请参阅我的答案How to call a batch file in the parent folder of current batch file?,我已经解释了使用命令调用运行批处理文件,或者与批处理文件中的这两个命令一起启动或不启动批处理文件的区别.

相关文章

(1)when you ping a computer from itsafe,the ping command should return the local IP address. (...
1、点击win菜单,点击设置图标 2、选择系统选项 3、选择应用与程序选项 4、拉到最下方,选择程序与功能...
目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度...
windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,p...
在控制面板的程序与功能里启用和关闭windows功能打开,适用于linux的windows子系统
效果演示 推荐一个非常牛的文档网站生成器:docsify 我通过这个工具,成功将码云上的个人学习笔记发布到...