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

时间:2018-03-29 02:32:30

标签: batch-file cmd windows-scripting

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

我正在使用下面的代码,但它不起作用。我总是以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)

1 个答案:

答案 0 :(得分:0)

您可以使用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 Lost 的值。