Назад | Перейти на главную страницу

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

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

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

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

Мне нужен только код возврата 0, если он найдет ВСЕ из них. Если D не существует, он все равно распечатает A B C, что дает код ошибки 0.

Любые идеи?

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, давая вам правильный уровень ошибки при выходе.