批处理获取前一天日期,在此调用了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