批量处理两个日期之间的日子

时间:2013-10-03 12:56:24

标签: date batch-file

我正在制作自动更新系统,如果软件在一定时间内没有更新,我需要系统打开网页。我记录每次自动更新的日期,所以我需要帮助的是获取上次自动更新和当前日期之间的天数。我希望你也可以提供有关你的代码的解释,非常感谢你的努力,提前谢谢。

3 个答案:

答案 0 :(得分:3)

这是使用VBS的解决方案

@echo off
set "from=01-01-2001"
set "to=12-19-2011"
echo Wscript.Echo #%to%# - #%from%# >tmp.vbs
for /f %%a in ('cscript /nologo tmp.vbs') do set "total=%%a"
del tmp.vbs
echo The Total number of days from %from% until %to% is %total%

答案 1 :(得分:0)

您可能还想尝试这样的事情。

    set/p searchdate= Enter search date (ddmmyyyy):  

答案 2 :(得分:0)

我把它弄得松懈了:

:: Using Powershell
:: Count the number of days from %1 to %2 
:: date format is yyyy/mm/dd

@echo off
set from=2001/01/01
set to=2011/12/19
if not "%~1"=="" set from=%1
if not "%~2"=="" set to=%2
set /a a1=%from:~0,4% + 1
set /a a2=%to:~0,4% - 1
if %from:~0,4% EQU %to:~0,4% (
set "sameyear=(get-date %to%).dayofyear - "
) else (
set "sameyear=(get-date %from:~0,4%/12/31).dayofyear - " 
)

>file.ps1  echo Set-ExecutionPolicy unrestricted
>>file.ps1 echo $a=%sameyear%(get-date %from%).dayofyear

for /L %%a in (%a1%, 1, %a2%) do (
>>file.ps1 echo $a=$a + (get-date %%a/12/31^).dayofyear
)

if NOT %from:~0,4% EQU %to:~0,4% (
>>file.ps1 echo $a=$a + (get-date %to%^).dayofyear
)
>>file.ps1 echo.echo $a

for /f "delims=" %%a in (
'powershell -file file.ps1'
) do set total=%%a
del file.ps1 2>nul
echo The Total number of days from %from% until %to% is %total%