使用Windows批处理文件使用if条件时需要帮助

时间:2018-01-05 12:18:31

标签: batch-file vbscript

在使用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年。

1 个答案:

答案 0 :(得分:0)

set /a "YYYY-=1"替换为if "%MM%" leq "03" set /a "YYYY-=1",因此只有当月份为1月,2月或3月时才会减少年份。

注意:当您使用YYYY作为“当前年份”时,您应该为新变量指定另一个名称,例如FYEAR(对于“FiscalYear”)以避免混淆。没有它你的代码将正常工作,但如果明年你的代码有问题,你会很高兴用“说出名字”命名。