Batch file 使用管道操作符时,如果出现错误,批处理脚本将终止
我需要对涉及管道操作符的操作执行错误处理(检查ERRORLEVEL),但脚本不是继续使用非零ERRORLEVEL,而是立即终止。我怎样才能避免这种行为 考虑下面的例子。(请注意,这是一个简化的构造示例来说明问题-不是一个有意义的脚本) 这将导致Batch file 使用管道操作符时,如果出现错误,批处理脚本将终止,batch-file,error-handling,pipe,Batch File,Error Handling,Pipe,我需要对涉及管道操作符的操作执行错误处理(检查ERRORLEVEL),但脚本不是继续使用非零ERRORLEVEL,而是立即终止。我怎样才能避免这种行为 考虑下面的例子。(请注意,这是一个简化的构造示例来说明问题-不是一个有意义的脚本) 这将导致 > 'someinvalidcommand' is not recognized as ... command... > nextline 换句话说,脚本会在错误发生后继续。 现在考虑 echo firstline | someinvali
> '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
)
但是错误处理没有效果,因为它提前停止。将其委托给另一个
cmd
实例
cmd/c“someoperation | someotheroperation”
如果错误级别为1(
手杖
)
someoperation | someotheroperation
IF NOT %ERRORLEVEL% == 0 (
handleerror
)