在批处理脚本中使用IF语句

时间:2012-10-16 06:57:45

标签: if-statement batch-file

我是批处理编程的新手。我正在尝试在我的一个批处理脚本中使用IF条件。代码看起来像这样。

:rmfile
:: removes the file based on it's age.
::                     
SETLOCAL
set file=%~1
set age=%~2
set thrshld_days=40
if %age% LSS 40 
echo.%file% is %age% days old 
EXIT /b

现在的问题是,即使文件的年龄超过40,我也会打印文件。实际上这不应该发生。

请帮助我。谢谢!

2 个答案:

答案 0 :(得分:1)

要么把它放在一行:

if %age% LSS 40 echo.%file% is %age% days old

或使用块分隔符:

if %age% LSS 40 (
    echo.%file% is %age% days old
)

答案 1 :(得分:1)

if %age% LSS 40 
echo.%file% is %age% days old  

被解释为具有空体(第一行)和无条件echo(第二行)的条件表达式。你需要将它们放在一行:

if %age% LSS 40 echo.%file% is %age% days old   

或使用parens创建块(但开场括号必须与if位于同一行):

if %age% LSS 40 (
   echo.%file% is %age% days old
)