当前位置: 移动技术网 > IT编程>网络>Dos/Bat > 批处理bat计算前N个月第一天的日期

批处理bat计算前N个月第一天的日期

2017年12月08日  | 移动技术网IT编程  | 我要评论
【方案一】bat + date.exe(gnu)  复制代码 代码如下:  @echo off rem 调用gnu for win32的date.

【方案一】bat + date.exe(gnu)

 

复制代码 代码如下:

 @echo off
rem 调用gnu for win32的date.exe
set "gnudate=c:/test/date.exe"
rem 指定月数
set monthsago=1
for /f %%a in ('%gnudate% -d "%monthsago% months ago" "+%%y-%%m-01"') do (
    set "dstdate=%%a"
    )
)
echo,%dstdate%
pause
 

【方案二】bat + vbs

复制代码 代码如下:

@echo off
rem 指定月数
set monthsago=2
>"%temp%/datecalculate.vbs" echo strlastdate=dateadd("m", -%monthsago%, date)
>>"%temp%/datecalculate.vbs" echo strfmtdate=right(year(strlastdate),4) ^& right("0" ^& month(strlastdate),2) ^& "01"
>>"%temp%/datecalculate.vbs" echo wscript.echo strfmtdate
for /f %%a in ('cscript /nologo "%temp%/datecalculate.vbs"') do (
    set "dstdate=%%a"
)
set dstdate=%dstdate:~0,4%-%dstdate:~4,2%-%dstdate:~6,2%
echo,%dstdate%
pause

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网