以下 findstr 批处理代码有什么错误?

以下 findstr 批处理代码有什么错误?

我想创建一个批处理文件,它将扫描我指定的目录中的每个文件中的字符串,包括自动遍历子目录。这是我写的,但它似乎不起作用:

@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

我错过了什么?

答案1

我找到了你的问题。FINDSTR 方法将文件作为位置进行查找。我看不到你使用的参数,但我假设你没有在位置末尾输入文件名。如果你想查找多个文件,则必须使用通配符。这是我修改过的脚本示例,似乎运行良好:

@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

请注意,我没有通过提示输入位置,以便您看到差异。我使用通配符在所有文件中搜索。

希望这可以帮助

相关内容