我需要对涉及管道运算符的操作执行错误处理(检查 ERRORLEVEL),但脚本不是以非零 ERRORLEVEL 继续,而是立即终止。我怎样才能避免这种行为?
考虑以下示例。 (请注意,这是一个简化的构造示例来说明问题 - 不是一个有意义的脚本)
someinvalidcommand
echo nextline
这将导致
> 'someinvalidcommand' is not recognized as ... command...
> nextline
换句话说,脚本在错误发生后继续执行。 现在考虑
echo firstline | someinvalidcommand
echo nextline
这只会导致
> 'someinvalidcommand' is not recognized as ... command ...
也就是说,它在评估“echo nextline”之前终止
为什么会出现这种行为以及如何避免它?目的是执行类似的操作
someoperation | someotheroperation
IF NOT %ERRORLEVEL% == 0 (
handleerror
)
但是错误处理没有任何效果,因为它提前停止了。
最佳答案
将其委托(delegate)给另一个 cmd
实例
cmd /c" someoperation | someotheroperation "
if errorlevel 1 (
handleerror
)
关于batch-file - 使用管道运算符时出现错误时批处理脚本终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30889211/