Question

J'essaie de faire ce qui suit: Recherchez dans tous les fichiers txt en température qui commence par «micro» et trouve si les deux chaînes suivantes existent dans l'une d'entre elles. J'ai besoin de trouver les deux chaînes dans 1 fichier.

Actuellement j'ai: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
)

Mais cela utilise ou. J'ai trouvé que je dois utiliser. * Pour et, mais le simple suivant ne fonctionne pas:

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

Je ne sais pas ce que je fais mal. : /

Bravo, Geri

Était-ce utile?

La solution 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%"

Obtenez la liste des fichiers contenant la première chaîne et utilisez cette liste pour rechercher la deuxième chaîne.

Autres conseils

for /F "delims=" %%a in ('findstr /M /C:"action: Uninstall" Micro*.log') do (
   findstr /N /C:"Exit code: 0x0, restarting: No" "%%a"
)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top