如何检查文本文件是否包含批量的某些文本?

Mow*_*gli 15 batch-file

我的文件文件与我的批处理文件所在的文件夹相同.

所以我希望我的批处理文件读取文本文件的内容,并根据该文本文件的内容,我希望它执行操作.

例如,如果文本文件包含"Hello World",那么如果它不包含Hello World,则执行类似Start VLC的操作,然后执行其他操作.

文本将自行更新.

这是我的批处理代码到目前为止,它可以从屏幕上的文本文件输出文本.

@echo off
for /f "tokens=*" %%a in (log.txt) do call :processline %%a

pause
goto :eof

:processline
echo line=%*

goto :eof

:eof
Run Code Online (Sandbox Code Playgroud)

dbe*_*ham 33

您应该使用FIND或FINDSTR.键入HELP FINDHELP FINDSTR从命令提示符处获取文档.FIND非常简单可靠.FINDSTR更强大,但也很温和.请参阅Windows FINDSTR命令的未记录的功能和限制是什么?了解更多信息.

您不关心任何一个命令的输出,因此您可以将输出重定向到nul.

如果找到该字符串,则两个命令都将ERRORLEVEL设置为0;如果找不到该字符串,则将其设置为1.您可以使用&&||运算符有条件地执行代码,具体取决于是否找到了字符串.

>nul find "Hello World" log.txt && (
  echo "Hello World" was found.
) || (
  echo "Hello World" was NOT found.
)

>nul findstr /c:"Hello World" log.txt && (
  echo "Hello World" was found.
) || (
  echo "Hello World" was NOT found.
)
Run Code Online (Sandbox Code Playgroud)

您也可以在IF语句中测试ERRORLEVEL,但我更喜欢上面的语法.