Windows findstr com condição AND?

1

É possível, em uma linha, sem um arquivo de lote usar o findstr e retornar apenas 0% errorlevel% se todas as strings forem encontradas?

Eu estou fazendo uma lista de gem, que lista um monte de gemas. Eu então quero usar findstr / find para ter certeza de que EACH string I search for exists. Se um deles não, então deve retornar um código de erro não 0. Atualmente, ele sempre retornará um código de erro 0 se alguma das strings for encontrada. Parece funcionar muito bem com as condições OR, mas não com as condições AND. Como posso fazer isso?

C: ... lista de pedras preciosas | findstr "A B C D"

Eu só quero um código de retorno de 0, se encontrar todos eles. Se D não existir, ele ainda irá imprimir A B C, que fornece o código de erro 0.

Alguma idéia?

    
por tek0011 09.03.2015 / 15:38

1 resposta

1

FOR %G IN (foo, bar) DO (gem list | findstr %G)

Agora, se eu conseguir fazer isso, segure o código de erro de cada retorno.

Uma maneira melhor de lidar com isso e erro se um dos comandos no loop falhar:

FOR %G IN (foo, foobar) DO (gem list | findstr %G) || IF %ERRORLEVEL% == 0 exit

Em seguida, ele sempre retornará um non, fornecendo o nível de erro correto na saída

    
por 09.03.2015 / 16:22