批处理文件中特定语句的返回/退出代码

时间:2018-03-07 11:56:09

标签: batch-file return batch-processing exit-code

批处理文件应该按顺序运行大量脚本(脚本依赖于其以前的脚本)。问题是只有当所有脚本按顺序正常运行时才能成功完成工作。即使一个脚本无法运行,我们也无法获得所需的输出。以下是批处理脚本的示例;

cd some\Relevant\Folder
script1.js
PING localhost -n 10 > NUL
script 2.js
PING localhost -n 10 > NUL
java -cp X:\some\Java\JavaDir JavaScript
PING localhost -n 10 > NUL
X:\some\bat\directory\batfile.bat
X:\some\directory\pythonfile.py

此处.js文件正常运行。但是.bat文件不会以某种方式运行,所以.py脚本(发送邮件也无法运行)。但是,当脚本中没有.bat文件时,.py脚本成功运行(具有所需的结果)。

有没有办法可以获得特定语句的返回码/退出代码,例如成功/不成功运行.js,.bat或.py文件?

PS:我看到" echo%ERRORLEVEL%"互联网上的解决方案,但它只打印错误级别一次(直到它改变..例如:成功运行只将一次回显输出为0 ..如果我在另一个语句后回显它,它不会打印如果我在不成功的运行后回显它,它会输出一些其他数字,如9009 ...),即使我在另一个命令后第二次回显它。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。脚本中的所有语句都没有运行,因为即使一个语句引发了错误,其余的语句也不会被执行。解决方法是使用

为每个脚本调用cmd的新shell
cmd /c absolute\path\script2.js