由于vbs提供了dateadd函数,所以这个问题用vbs+bat应该比较简单一些。
@echo off
echo Wscript.echo DateAdd(WScript.Arguments(0),WScript.Arguments(1),now) >tmp1.vbs
echo.
echo.
echo 参数表达式:
echo yyyy 年
echo m 月
echo d 日
echo h 小时
echo n 分钟
echo s 秒
echo 参数格式举例: yyyy 1
echo yyyy -1
set /p arg=输入参数:
if "%arg%" == "" goto :eof
call :dosomething %arg%
del tmp1.vbs
goto :eof
:dosomething
for /f "tokens=1,2" %%i in ('"cscript //nologo tmp1.vbs %arg%"') do echo %%i |date & echo %%j | time
goto :eof
时间关系,仅仅测试了修改日期部分,时间部分自行测试修改。