Pergunta

Estou tentando fazer o seguinte: Pesquise todo o arquivo txt no Temp que começa com 'micro' e encontre se as duas strings a seguir existem em qualquer uma delas. Preciso encontrar as duas cordas em 1 arquivo.

Atualmente eu tenho:enter code here

@echo off
cd C:\Users\ADMINI~1\AppData\Local\Temp
findstr /N /C:"action: Uninstall" /C:"Exit code: 0x0, restarting: No" Micro*.log >results.txt
if %errorlevel%==1 (
robocopy C:\Users\ADMINI~1\AppData\Local\Temp C:\Users\Administrator\Desktop results.txt
) else (
echo matches found
)

Mas isso está usando ou. Descobri que preciso usar.* Para e, mas o seguinte simples não funciona:

findstr /N /C:"action: Uninstall".*/C:"Exit code: 0x0, restarting: No" Micro*.log

Não tenho certeza do que estou fazendo de errado. :/

Saúde, Geri

Foi útil?

Solução 2

set "string1=action: Uninstall"
set "string2=Exit code: 0x0, restarting: No"
set "files=C:\Users\ADMINI~1\AppData\Local\Temp\Micro*.log"

findstr /m /c:"%string1%" "%files%" | findstr /f:/ /m /c:"%string2%"

Obtenha a lista de arquivos que contêm a primeira string e use esta lista para pesquisar na segunda sequência.

Outras dicas

for /F "delims=" %%a in ('findstr /M /C:"action: Uninstall" Micro*.log') do (
   findstr /N /C:"Exit code: 0x0, restarting: No" "%%a"
)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top