O que há de errado com o seguinte código de lote findstr?

1

Eu quero criar um arquivo em lote que irá procurar por uma string em cada arquivo no diretório que eu atribuir, incluindo os subdiretórios automaticamente. Aqui está o que eu escrevi e não parece funcionar:

@echo off 

goto findstring

:stringnotfound

echo %string% not found in %location%

pause >nul

:findstring

set /p string=string:

set /p location=location:

findstr /i /p /m /s "%string%" %location%

if %errorlevel% == 1 goto stringnotfound

O que estou perdendo?

    
por Daniel 30.09.2016 / 17:02

1 resposta

1

Eu encontrei seu problema. o método FINDSTR procura por um arquivo como um local. Não consigo ver quais parâmetros você está usando, mas suponho que você não esteja inserindo um nome de arquivo no final do seu local. Você tem que usar curingas se quiser procurar em vários arquivos. Aqui está um exemplo do seu script que eu modifiquei e que parece funcionar bem:

@echo off 
goto findstring

:stringnotfound

echo %string% not found in %location%

pause >nul

:findstring

set /p string=string:

set location=C:\test\*.* 

findstr /i /p /m /s %string% %location% 

if %errorlevel% == 1 goto stringnotfound

Observe que não estou inserindo o local por meio do prompt para que você possa ver a diferença. Estou usando o curinga para pesquisar em todos os arquivos.

Espero que isso ajude

    
por 30.09.2016 / 17:30

Tags