@echo off
setlocal EnableDelayedExpansion
echo Generate last datetime...
set TodayYear=%date:~0,4%
set TodayMon=%date:~5,2%
set TodayDay=%date:~8,2%
if "!TodayDay!" == "08" set TodayDay=8
if "!TodayDay!" == "09" set TodayDay=9
set LastdayYear=
set LastdayMon=
set LastdayDay=
set LastdayYear=%TodayYear%
set LastdayMon=%TodayMon%
set /A LastdayDay=TodayDay-1
echo %TodayDay%
echo %LastdayDay%
if "%LastdayDay%" == "0" (
if "!LastdayMon!" == "01" (
set LastdayMon=12
set /A LastdayYear-=1
) else (
set /A LastdayMon-=1
if "!LastdayMon!" == "1" set LastdayMon=01
if "!LastdayMon!" == "2" set LastdayMon=02
if "!LastdayMon!" == "3" set LastdayMon=03
if "!LastdayMon!" == "4" set LastdayMon=04
if "!LastdayMon!" == "5" set LastdayMon=05
if "!LastdayMon!" == "6" set LastdayMon=06
if "!LastdayMon!" == "7" set LastdayMon=07
if "!LastdayMon!" == "8" set LastdayMon=08
if "!LastdayMon!" == "9" set LastdayMon=09
)
if "!LastdayMon!" == "01" set LastdayDay=31
if "!LastdayMon!" == "03" set LastdayDay=31
if "!LastdayMon!" == "04" set LastdayDay=30
if "!LastdayMon!" == "05" set LastdayDay=31
if "!LastdayMon!" == "06" set LastdayDay=30
if "!LastdayMon!" == "07" set LastdayDay=31
if "!LastdayMon!" == "08" set LastdayDay=31
if "!LastdayMon!" == "09" set LastdayDay=30
if "!LastdayMon!" == "10" set LastdayDay=31
if "!LastdayMon!" == "11" set LastdayDay=30
if "!LastdayMon!" == "12" set LastdayDay=31
if "!LastdayMon!" == "02" (
set IsLeapYear=
set /A IsLeapYear=!LastdayYear!%%400
if "!IsLeapYear!" == "0" (
set LastdayDay=29
goto MAKELASTDATE
)
set /A IsLeapYear=!LastdayYear!%%100
if "!IsLeapYear!" == "0" (
set LastdayDay=28
goto MAKELASTDATE
)
set /A IsLeapYear=!LastdayYear%%4
if "!IsLeapYear!" == "0" (
set LastdayDay=29
goto MAKELASTDATE
) else (
set LastdayDay=28
goto MAKELASTDATE
)
)
)
:MAKELASTDATE
if "%LastdayDay%" == "1" set LastdayDay=01
if "%LastdayDay%" == "2" set LastdayDay=02
if "%LastdayDay%" == "3" set LastdayDay=03
if "%LastdayDay%" == "4" set LastdayDay=04
if "%LastdayDay%" == "5" set LastdayDay=05
if "%LastdayDay%" == "6" set LastdayDay=06
if "%LastdayDay%" == "7" set LastdayDay=07
if "%LastdayDay%" == "8" set LastdayDay=08
if "%LastdayDay%" == "9" set LastdayDay=09
rem 该程序有bug 下面几句话进行修正8月1号和9月1号的日期
if !TodayMon!==08 if !TodayDay!==01 set LastdayMon=07
if !TodayMon!==08 if !TodayDay!==01 set LastdayDay=31
if !TodayMon!==09 if !TodayDay!==01 set LastdayMon=08
if !TodayMon!==09 if !TodayDay!==01 set LastdayDay=31
set LastDate=%LastdayYear%%LastdayMon%%LastdayDay%
@echo Today =%date:~0,4%%date:~5,2%%date:~8,2%
@echo Yestoday=%LastDate%
pause
分享到:
相关推荐
windows下的各种批处理命令的写法。。
windows下批处理连接linux 的方法 可以用它自己写bat文件
bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样...
windows时间同步,可手动设置时间服务器IP,可同步XP,win7,win10 操作系统,经测试稳定运行。
windows bat 批处理 实例代码 参考学习; windows bat 批处理 实例代码 参考学习
Windows下批处理(BAT)修改文件名.txt
windows 批处理教程
本批处理仅适用于windows系统 自动替换hosts批处理... --------------------------------------------------------- 脚本会自动以管理员身份运行,CMD运行后会弹出一个提示, 请点击“是/Y” 按提示输入 请...
windows凭证一键添加批处理模板
对于学习windows批处理很有帮助,里边有两个示例脚本和教程电子书
windows批处理脚本教程,从最基础的学起~~~
Windows批处理一键开放防火墙端口
windows垃圾批处理windows垃圾批处理windows垃圾批处理windows垃圾批处理windows垃圾批处理windows垃圾批处理
xsleep 解决windows下批处理程序没有sleep命令。xsleep 适用于window下批处理程序实现延迟等待功能。xsleep 200 延迟200秒。xsleep -m 200 延迟200毫秒。xsleep -h 显示帮助
windows下手工指定IP地址, 打开该批处理文件,编辑上你需要的IP地址和子网掩码,网关等,可以很轻松的实现自动绑定IP地址
windows批处理文件,可清理垃圾windows批处理文件,可清理垃圾windows批处理文件,可清理垃圾windows批处理文件,可清理垃圾
windows10时间显示秒数批处理bat文件,原理为批处理新增系统注册表
在写Windows批处理脚本时,常常需要获取系统日期、时间戳记,用作文件名、文件夹名、log等等。 本文介绍了如何获取自订的系统日期、时间戳记。
免去维护奔波,一个批处理搞定,添加登录凭据,解决文件共享、打印机共享,smb文档服务,无法访问的种种反复出现的问题
主要包括启动修复,垃圾处理等几个批处理命令,优化系统用用不错!!!