我想定義我的年份是閏年。我把代碼@Aacini:Batch file leap year?表達式中缺少運算符
set /A "leap=!(year%%4) + (!!(year%%100)-!!(year%%400))"
if %leap% equ 1 echo Is leap year
但是當我運行它,它說有丟失的運算符。 你對我如何解決它有什麼想法嗎?
我想定義我的年份是閏年。我把代碼@Aacini:Batch file leap year?表達式中缺少運算符
set /A "leap=!(year%%4) + (!!(year%%100)-!!(year%%400))"
if %leap% equ 1 echo Is leap year
但是當我運行它,它說有丟失的運算符。 你對我如何解決它有什麼想法嗎?
這可能比它更容易。圓括號可用於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在SET /A
約YEAR
不需要百分號。
你在某個地方設置年,對吧? – SomethingDark
是否啓用了[延遲擴展](http://ss64.com/nt/delayedexpansion.html)?好吧,不要因爲它會消耗'!'運算符,或者在'^!'的情況下逃避它們... – aschipfl
@SomethingDark是的,我將它設置在我的代碼的開頭,它顯示正確的日期,當我使用'echo%year%' –