表达式中缺少运算符

时间:2017-10-10 14:42:48

标签: batch-file cmd

我想定义我的年份是否是闰年。我从@Aacini中获取了代码:Batch file leap year?

set /A "leap=!(year%%4) + (!!(year%%100)-!!(year%%400))"
if %leap% equ 1 echo Is leap year

但是当我运行它时,它表示缺少运营商。 你对我如何解决它有任何想法吗?

1 个答案:

答案 0 :(得分:0)

这可能比它更容易实现。括号可以在SET /A语句中使用,但模数将在加法或减法之前发生。

@ECHO OFF
SET /A YEAR=%1
SET /A "LEAP=YEAR %% 4 + YEAR %% 100 - YEAR %% 400"
IF %LEAP% EQU 0 (ECHO %YEAR% is a leap year)

通过将有问题的年份作为命令脚本的参数来使用它。

CALL leapyear.bat 2017

HT @aschipft约YEAR SET /A不需要百分比字符。