使用管道运算符时,批处理脚本会在出现错误时终止

时间:2015-06-17 10:42:12

标签: batch-file error-handling pipe

我需要在涉及管道运算符的操作上进行perferm错误处理(检查ERRORLEVEL),但不是脚本继续使用非零ERRORLEVEL,而是立即终止。我该如何避免这种行为?

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

position: relative;

这将导致

    change the resource fields as:

    categories= fields.ManyToManyField(PostResource, attribute=lambda bundle: bundle.obj.categories.all().order_by('name'),
                                       null=True, blank=True, full=True)

also you can use :
lambda bundle: categories.objects.filter(
        categories=bundle.obj, 
        user__id=2
    )

换句话说,脚本在错误发生后继续。 现在考虑

someinvalidcommand
echo nextline

这只会产生

> 'someinvalidcommand' is not recognized as ... command...
> nextline

也就是说,它在评估" echo nextline"

之前终止

为什么这种行为以及如何避免它?目的是执行类似于

的操作
echo firstline | someinvalidcommand
echo nextline

但错误处理没有效果,因为它提前停止。

1 个答案:

答案 0 :(得分:2)

将其委托给另一个cmd实例

cmd /c" someoperation | someotheroperation "
if errorlevel 1 (
    handleerror
)