查看单个帖子
xclimbing
 
xclimbing 的头像
高级会员
 
资 料:
注册日期: Jan 2019
帖子: 782 声望值: 0
精华: 0,解答: 13
#8 旧 2021-02-22, 11:34:50 默认
xclimbing 当前离线  

关键的问题是批处理没有特别有效的办法处理日期的加减,当然,也不是没有办法,稍微有点儿麻烦就是了。

一、在批处理中调用vbs处理日期:

@Echo Off
Echo NewDate = DateAdd^("d", Wscript.arguments^(1^), Wscript.arguments^(0^)^)>Day.vbs
Echo Wscript.Echo NewDate>>Day.vbs
echo set basedate=2021-02-19>basedate.bat

call basedate.bat
if not defined basedate set basedate=2021-02-19
echo 当前基础日期:%basedate%
set dayadd=7

for /f "tokens=*" %%i in ('cscript /nologo Day.vbs %basedate% %dayadd%') do (set nextdate=%%i)
if %date% GEQ %nextdate% set basedate=%nextdate%
echo set basedate=%basedate%>basedate.bat
echo 当前日期:%date%
echo 下一个基础日期:%nextdate%
echo 当前基础日期:%basedate%
pause

Del /q Day.vbs


执行结果:

D:\TEMP\test>TestDateAddvbs1.cmd
当前基础日期:2021-02-19
当前日期:2021-02-22
下一个基础日期:2021-02-26
当前基础日期:2021-02-19
请按任意键继续. . .
回复时引用此帖