Windows findstr с условием AND?

Возможно ли в одной строке без командного файла использовать findstr и возвращать 0 %errorlevel%, только если найдены все строки?

Я делаю список драгоценных камней, который перечисляет кучу драгоценных камней. Затем я хочу использовать findstr/find, чтобы убедиться, что КАЖДАЯ строка, которую я ищу, существует. Если один из них этого не делает, он должен вернуть код ошибки, отличный от 0. В настоящее время он всегда будет возвращать код ошибки 0, если найдена какая-либо из строк. Кажется, он прекрасно работает с условиями OR, но не с условиями AND. Как я могу это сделать?

C:... список драгоценных камней | findstr "A B C D"

Я хочу только код возврата 0, если он находит ВСЕ из них. Если D не существует, он все равно распечатает A B C, который дает код ошибки 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

Тогда он всегда будет возвращать non, давая вам правильный уровень ошибки при выходе

Другие вопросы по тегам