是否有可能在一行中不使用批处理文件来使用 findstr,并且仅在找到所有字符串时返回 0%errorlevel%?
我正在制作一个宝石列表,其中列出了一堆宝石。然后我想使用 findstr/find 来确保我搜索的每个字符串都存在。如果其中一个不存在,那么它应该返回非 0 错误代码。目前,如果找到任何字符串,它总是会返回 0 错误代码。它似乎适用于 OR 条件,但不适用于 AND 条件。我该怎么做?
C:...宝石列表| findstr“ABC D”
我只希望在找到所有这些时返回代码为 0。如果 D 不存在,它仍会打印出 ABC,从而给出错误代码 0。
有任何想法吗?
答案1
FOR %G IN (foo, bar) DO (gem list | findstr %G)
现在,如果我可以让它保留每次返回的错误代码。
处理它的更好方法是,如果循环中的一个命令失败,则会出现错误:
FOR %G IN (foo, foobar) DO (gem list | findstr %G) || IF %ERRORLEVEL% == 0 exit
然后它将始终返回一个非,在退出时为您提供正确的错误级别