我正在编写一个调用命令的批处理文件,并且我想处理可能导致的任何错误。我的要求是只使用本机 CLI 命令;换句话说,我知道如果我使用 PowerShell 或其他任何东西,我可以轻松完成此任务,但我不是。
我想要的是如果发生错误,检查输出,如果错误是预期的,继续处理,否则中止。但是,我无法以有用的方式解析输出。
这似乎与我能得到的一样接近:
command | (find /i "valid" >NUL && goto :okay || goto :stop)
在这里,我将命令的输出通过管道传输到find
. 问题是,无论命令的退出状态如何,都会发生这种情况 - 它同时发送成功和失败消息。一种选择是:
command 1>NUL 2>(find /i "valid" >NUL && goto :okay || goto :stop)
但是,这不起作用,因为它试图重定向到文件;该find
命令不接收输入。
(出于测试目的,command
是一个回显消息的 cmd 文件,并exit /b 1
用于错误)
有任何想法吗?