1

Я хочу создать командный файл, который будет сканировать строку в каждом файле в каталоге, который я назначаю, включая автоматический просмотр подкаталогов. Вот что я написал, и это не похоже на работу:

@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 ответ1

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

Обратите внимание, что я не вводил местоположение через приглашение, чтобы вы могли увидеть разницу. Я использую подстановочный знак для поиска во всех файлах.

Надеюсь это поможет

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .