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

前端之家收集整理的这篇文章主要介绍了单行与多个命令使用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?,我已经解释了使用命令调用运行批处理文件,或者与批处理文件中的这两个命令一起启动或不启动批处理文件的区别.

猜你在找的Windows相关文章