小编Sil*_*ter的帖子

在Windows命令提示符下,"&&"似乎忽略了错误代码

我有一些批处理脚本用于自动化应用程序构建过程,其中大多数涉及使用&&运算符将命令链接在一起.不可否认,我对Linux更有经验,但基于该经验some_command && other_command应该导致other_command运行iff some_command返回退出代码0.这个答案这个答案似乎都同意这一点.但是,在Windows cmd.exe中似乎不是这种情况,所有脚本都会运行,而不管之前的错误代码如何.

我决定做一个简单的测试来说服自己我不会疯狂.考虑一下test.bat,它返回退出代码1:

@echo off
EXIT /B 1
Run Code Online (Sandbox Code Playgroud)

运行test.bat && echo This shouldn't print打印'这不应该打印'.但由于退出代码显然为1,echo因此不应调用.我已经测试过错误代码实际上是1使用%errorlevel%变量,它们按预期出现(在我运行脚本之前为0,之后为1).

在Linux上我尝试了同样的事情.这是test.sh:

#!/bin/bash
exit 1
Run Code Online (Sandbox Code Playgroud)

运行./test.sh && echo "This shouldn't print"没有输出,正是我所期望的.

这里发生了什么?

(注意:操作系统是Windows 7企业版)

windows batch-file

0
推荐指数
1
解决办法
513
查看次数

标签 统计

batch-file ×1

windows ×1