减去bat文件中的日期

时间:2017-12-14 21:11:20

标签: batch-file cmd

我正在尝试获取开始日期和结束日期。开始和结束数据应该相隔1整天。我有问题从开始日期或结束日期减去或添加。我该怎么做呢?我尝试过-%1%+%1%

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"

set /a y=%dt:~0,4%
set /a m=1%dt:~4,2%
set /a d=1%dt:~6,2%


set subdate=%y%%m:~-2%%d:~-2%

SET START_DATE= %subdate:~0,4%/%subdate:~4,2%/%subdate:~6,2% 00:00 AM
SET END_DATE = %dt:~0,4%/%dt:~4,2%/%dt:~6,2%+%1% 00:00 AM

echo %start_date%
echo %end_date%
echo done

1 个答案:

答案 0 :(得分:2)

这是一种将开始日期定义为昨天和结束日期为今天的方法。如果我误解了你的想法,请说出来。

FOR /F "usebackq tokens=*" %%t IN (`powershell -NoProfile -Command "(Get-Date).AddDays(-1).ToString('yyyy/MM/dd HH:MM:ss')"`) DO (SET "START_DATE=%%t")
FOR /F "usebackq tokens=*" %%t IN (`powershell -NoProfile -Command "(Get-Date).ToString('yyyy/MM/dd HH:MM:ss')"`) DO (SET "END_DATE=%%t")

echo %START_DATE%
echo %END_DATE%