bat脚本得到前一天的日期的代码
@echo off
::年月日字符串
set str_date=%date:~0,4%%date:~5,2%%date:~8,2%
::星期几
set str_week_val=%date:~-1%
::本地要备份的文件夹路径
set str_webpath_local=D:wwwroot
::本地备份文件存放路径
set str_path_local=D:web_bak
::网站压缩包名称前缀
set str_rar_name=MH_WEB
::异地 备份路径
set str_path_day=z:最新7天网站备份
::异地 备份路径
set str_path_weekend=z:最新4个周末的网站备份
::异地 备份路径
set str_path_month=z:每个月底的网站备份
::取两位月份数字
set m=%date:~5,2%
::第一位为0则只取个位数
if %m:~0,1%==0 set /a m=%m:~1,1%*1
::取四位年份数字(这个命令用不到5位数那年吧)
set /a x=%date:~0,4%
::闰年判断条件1 %%代表取余
set /a y=%x%*1%%4
set /a y2=%x%*1%%100
::闰年判断条件2 %%代表取余
set /a y3=%x%*1%%400
::默认2月份只有28天
set ld=28
::满足闰年条件1
if %y%==0 (
if %y2% NEQ 0 set ld=29
)
::满足闰年条件2
if %y3%==0 set ld=29
for %%i in (1 3 5 7 8 10 12)do (if %m%==%%i set /a ld=31)
for %%i in (4 6 9 11)do (if %m%==%%i set /a ld=30)
::echo 日期:%ld%
::pause
::当月月底的年月日字符串
set str_monthend_val=%date:~0,4%%date:~5,2%%ld%%
c:
cd C:Program FilesWinRAR
echo %time%开始压缩 >>%str_path_local%%str_date%_log.bak
rar a -u -x*.log* %str_path_local%%str_rar_name%%str_date%.rar %str_webpath_local%
echo %time%结束压缩 >>%str_path_local%%str_date%_log.bak
echo. >>%str_path_local%%str_date%_log.bak
echo %time%开始复制 >>%str_path_local%%str_date%_log.bak
if "%str_date%"=="%str_monthend_val%" (
xcopy %str_path_local%%str_rar_name%%str_date%.rar %str_path_month% /d/y
) else (
if "%str_week_val%"=="日" (
xcopy %str_path_local%%str_rar_name%%str_date%.rar %str_path_weekend% /d/y
::删除4周前的rar文件
FORFILES /P %str_path_weekend% /M *.rar /D -22 /C "cmd /c echo %time% deleting..@file.. &del @file">>%str_path_local%%str_date%_del.bak
) else (
xcopy %str_path_local%%str_rar_name%%str_date%.rar %str_path_day% /d/y
::删除7天前的rar文件
FORFILES /P %str_path_day% /M *.rar /D -7 /C "cmd /c echo %time% deleting..@file.. &del @file">>%str_path_local%%str_date%_del.bak
)
)
echo %time%结束复制 >>%str_path_local%%str_date%_log.bak
echo. >>%str_path_local%%str_date%_log.bak
::删除本地1天前的rar文件
FORFILES /P %str_path_local% /M *.rar /D -1 /C "cmd /c echo %time% deleting..@file.. &del @file">>%str_path_local%%str_date%_del.bak
::删除本地7天前的bak记录文件
FORFILES /P %str_path_local% /M *.bak /D -7 /C "cmd /c echo %time% deleting..@file.. &del @file">>%str_path_local%%str_date%_del.bak
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播