Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows bat不返回右退出状态_Windows_Batch File_Cmd_Dos_Exit - Fatal编程技术网

Windows bat不返回右退出状态

Windows bat不返回右退出状态,windows,batch-file,cmd,dos,exit,Windows,Batch File,Cmd,Dos,Exit,我有两个bat文件。callexcode.cmd调用excode.cmd,它只调用不存在的文件“saurabh”。当我想在调用方中打印错误代码时(在本例中callexcode.cmd,我得到0,表示成功。但错误代码为1,因为没有名为“saurabh”的文件。我正在两个bat文件中打印退出代码。callie显示退出代码为1,而调用方显示退出代码为0。请任何人看一看,告诉我哪里出了问题。相反,我有什么原因出口代码被弄乱了吗 callExcode.cmd IF "%1"=="abc" ( SE

我有两个bat文件。callexcode.cmd调用excode.cmd,它只调用不存在的文件“saurabh”。当我想在调用方中打印错误代码时(在本例中callexcode.cmd,我得到0,表示成功。但错误代码为1,因为没有名为“saurabh”的文件。我正在两个bat文件中打印退出代码。callie显示退出代码为1,而调用方显示退出代码为0。请任何人看一看,告诉我哪里出了问题。相反,我有什么原因出口代码被弄乱了吗

callExcode.cmd

 IF "%1"=="abc" (
  SET good=%2
 )
 IF /I "%good%" == "pqr" ( 
 CALL exCode
 echo ' in file callexcode, error level ret = %ERRORLEVEL%'
 @EXIT /B %ERRORLEVEL% 
 )

excode.cmd

CALL saurabh 
echo 'in file excode'
echo 'exit code %ERRORLEVEL%'
@EXIT /B %ERRORLEVEL% 
输出 C:\docs>callExcode.cmd abc pqr

C:\docs>如果“abc”=“abc”(设置良好=pqr)

C:\docs>IF/I“pqr”=“pqr”( 呼叫交换码 echo'在文件callexcode中,错误级别ret=0'

)

C:\docs>呼叫saurabh “saurabh”不被识别为内部或外部命令, 可操作的程序或批处理文件

C:\docs>echo“在文件excode中” “在文件交换代码中”

C:\docs>echo“退出代码1” “退出代码1” '在文件callexcode中,错误级别ret=0'

提前谢谢


Saurabh

当您在()中有代码时,解释器将其视为一行代码。环境变量在解析该行时展开,而不是在执行该行时展开。您可以通过在脚本顶部使用这行代码来解决此问题:

setlocal enableextensions enabledelayedexpansion
一旦你有了那条线,你就可以使用

!ERRORLEVEL!
而不是

%ERRORLEVEL%
环境变量名称的而不是%表示“在执行代码行时,而不是在解析代码行时,展开此变量。”

账单