批处理获取前一天日期,在此调用了vbs脚本比较容易实现,不会出现某月零日和判断是否瑞年的情况。
以下2中方式大致一样,方法一应该是速度更快一些。其中,'cscript /nologo %tmp%\tmp.vbs' 表示调用执行%tmp%\tmp.vbs'文件,//nologo表示不显示logo版本信息,不带此参数亦可,不影响程序执行 。
方法一(将以下内容保存为.bat后缀的文件即可):
@echo off
Rem 取1天之前的日期,取回放入变量nowdate
echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3 delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do (set y=%%i
set m=%%j
set d=%%k)
if %m% LSS 9 set m=0%m%
if %d% LSS 9 set d=0%d%
set nowdate=%y%-%m%-%d%
echo %nowdate%
pause
方法二(将以下内容保存为.bat后缀的文件即可):
@echo off