我刚刚开始用MS批处理文件弄湿我的脚。我创建了一个小批量,它使用findstr/m在所输入的目录中搜索包含特定字符串的文件。它返回一个包含该字符串的文件,但只返回它找到的第一个文件。我搜查了findstr /?和在线命令参考,以及本网站。我无法找到findtr用字符串实例返回所有文件的方法。我错过了什么?findstr/m只返回找到的第一个文件名
@echo off
setlocal
ECHO This Program Searches for words inside files!
:Search
set /P userin=Enter Search Term:
set /p userpath=Enter File Path:
FOR /F %%i in ('findstr /M /S /I /P /C:%userin% %userpath%\*.*') do SET finame=%%i
if "%finame%" == "" (set finame=No matching files found)
echo %finame%
set finame=
endlocal
:searchagain
set /p userin=Do you want to search for another file? (Y/N):
if /I "%userin%" == "Y" GOTO Search
if /I "%userin%" == "N" GOTO :EOF ELSE (
GOTO wronginput
)
Pause
:wronginput
ECHO You have selected a choice that is unavailable
GOTO searchagain
如果有人问,我加了暂停,这样我就可以确定我的ELSE语法是正确的。它可以被删除。 – Develmann