加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 01:40:27 所属栏目:Windows 来源:网络整理
导读:我尝试了解批处理文件中单个命令行中的多个命令是如何工作的. dir md folder1 rename folder1 mainfolder 和其他类似命令的情况,但取代 dir md folder1 rename folder1 mainfolder 这两种情况有什么区别? 其他我想问的事情: 单行批发 dir md folder1 renam
我尝试了解批处理文件中单个命令行中的多个命令是如何工作的.
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?,我已经解释了使用命令调用运行批处理文件,或者与批处理文件中的这两个命令一起启动或不启动批处理文件的区别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读