我是批处理脚本的新手。 我需要计算一个dat文件中的行数,如果count小于或等于2,则应该抛出失败。如果count为3或更大,则脚本应该返回成功。
我尝试了下面的代码,但提示没有按预期响应。
findstr /R /N "^" filename.DAT | find /C":" > test.txt
SET /p count=<test.txt
IF %count% leq "2"
(exit 1)
else (exit 0)
pause
答案 0 :(得分:4)
使用引号强制if
来比较字符串。所以它将字符串2
与字符串"2"
进行比较 - 显然不匹配...使用更好的方法(没有临时文件):
for /f %%a in ('^<filename.dat find /v /c ""') do set /a count=%%a
if %count% leq 2 (exit 1) else (exit 0)
注意:当您尝试使用if "%count%" leq "2"
时,请记住,您正在比较字符串。因此100
低于而不是2
。