findstr给出错误的errorlevel

时间:2016-02-07 11:44:35

标签: windows batch-file findstr errorlevel

为什么这样:

for /f "tokens=5 delims=<>" %%G in ('findstr /C:"<a href=\"register\">" "index.html"') do echo %%G

在此

时给出错误级别1
findstr /C:"<a href=\"register\">" "index.html"

给出错误级别0?

第一个代码为我提供了我正在寻找的字符串。第二个给出了字符串所在的文本行。我需要第一个代码给我一个错误级别0,因为据我所知它没有返回任何错误。我做错了什么?

1 个答案:

答案 0 :(得分:1)

for命令可以将ERRORLEVEL设置为1;它只保留了之前的价值。我建议你通过这一行在for之前将ERRORLEVEL设置为0:

ver > nul

您可以查看What are the ERRORLEVEL values set by internal cmd.exe commands?所有内部命令设置的ERRORLEVEL值的完整说明

另外,你没有说我们你是如何测试ERRORLEVEL的。如果您使用的是if %ERRORLEVEL% ...并且此命令位于代码块内,则它也可能是与延迟扩展相关的问题。