如果找到了某些东西,findstr返回0,如果没有找到,则返回1.你刚倒了支票.
不需要batch-foo,即使在Windows上,shell也是交互式的,所以你可以试一试:
>dir | findstr ".sln" 15.01.2009 16:37 33.844 Project.sln >echo %ERRORLEVEL% 0 >dir | findstr ".slngimpf" >echo %ERRORLEVEL% 1
顺便说一句,写起来更容易
if errorlevel 0 andthencontinuewithwhatever
这样你的脚本也可以对抗不祥之物:
set errorlevel=0
然后将以正确的方式销毁任何以%errorlevel%打印出错误级别的尝试.
(编辑)重要说明:我忘了说if errorlevel
语法检查errorlevel是否大于或等于要测试的值.因此,要正确使用它,您必须始终首先检查最高错误,例如:
someCommand if errorlevel 10 ... if errorlevel 9 ... if errorlevel 0 ...