在使用if条件设置windows批处理文件中的变量值时需要帮助
我正在使用的代码是
:: This is Code for D3
@echo off
set day=-1
echo >"%temp%\%~n0.vbs" s=DateADD("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^&
right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "filename=%MM%%DD%%YYYY%"
echo "%YYYY%"
set /a "YYYY-=1"
echo "%YYYY%"
pause
在上面的代码中我想修改,如果月份是1月,2月和3月那么YYYY的值应该是2017年的YYYY- = 1,否则该值应该是当前的2018年。
答案 0 :(得分:0)
将set /a "YYYY-=1"
替换为if "%MM%" leq "03" set /a "YYYY-=1"
,因此只有当月份为1月,2月或3月时才会减少年份。
注意:当您使用YYYY
作为“当前年份”时,您应该为新变量指定另一个名称,例如FYEAR
(对于“FiscalYear”)以避免混淆。没有它你的代码将正常工作,但如果明年你的代码有问题,你会很高兴用“说出名字”命名。