华域联盟 DOS/BAT 批处理bat计算前N个月第一天的日期

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

【方案一】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

本文由 华域联盟 原创撰写:华域联盟 » 批处理bat计算前N个月第一天的日期

转载请保留出处和原文链接:https://www.cnhackhy.com/17918.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部