我想创建一个批处理文件,它将扫描我指定的目录中的每个文件中的字符串,包括自动遍历子目录。这是我写的,但它似乎不起作用:
@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
请注意,我没有通过提示输入位置,以便您看到差异。我使用通配符在所有文件中搜索。
希望这可以帮助