Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 使用管道操作符时,如果出现错误,批处理脚本将终止_Batch File_Error Handling_Pipe - Fatal编程技术网

Batch file 使用管道操作符时,如果出现错误,批处理脚本将终止

Batch file 使用管道操作符时,如果出现错误,批处理脚本将终止,batch-file,error-handling,pipe,Batch File,Error Handling,Pipe,我需要对涉及管道操作符的操作执行错误处理(检查ERRORLEVEL),但脚本不是继续使用非零ERRORLEVEL,而是立即终止。我怎样才能避免这种行为 考虑下面的例子。(请注意,这是一个简化的构造示例来说明问题-不是一个有意义的脚本) 这将导致 > 'someinvalidcommand' is not recognized as ... command... > nextline 换句话说,脚本会在错误发生后继续。 现在考虑 echo firstline | someinvali

我需要对涉及管道操作符的操作执行错误处理(检查ERRORLEVEL),但脚本不是继续使用非零ERRORLEVEL,而是立即终止。我怎样才能避免这种行为

考虑下面的例子。(请注意,这是一个简化的构造示例来说明问题-不是一个有意义的脚本)

这将导致

> '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
)