使用 windows 批处理在文本文件中搜索字符串

search a string in text file using windows batch

我正在尝试检查文本文件中的特定字符串 (Lost = 0) out.txt 并将结果回显到文本文件取决于错误 level.If 该字符串是存在于文本文件中,我需要回显服务已启动,否则服务已关闭。

我正在使用下面的代码,但它不是 working.I 我总是退出 service is up 你能告诉我脚本有什么问题吗?

echo off

findstr  /c:"Lost = 0" "out.txt" >nul

if ERRORLEVEL 1 ( @echo service is up >result.txt 

) else (

@echo service is down >result.txt)

您可以使用带有给定分隔符(在本例中为“=”)的 for /F 检查匹配的字符串,而不是检查错误级别:

@echo off
for /F "tokens=2 delims==" %%E in ('
    findstr /c:"Lost =" "out.txt"
') do set str=%%E

if "%str%" == " 0" (echo service is up) else (echo service is down)

注意令牌和生成的字符串。在您的情况下,第二个标记是“n”(前导 space),n 是 Lost.[=12= 的值]