您现在的位置: 爱51代码网 >> 范文 >> 文章正文
dos 删除一星期前的备份文件脚本

dos 删除一星期前的备份文件脚本

ftp数据库每天都备份,备份文件名格式固定包含日期,请问怎样用dos命令删除一星期前的备份呢?
用的是windows任务执行计划自动执行bat文件
set cicdate=%date:~0,4%-%date:~5,2%-%date:~8,2%
set /a deldata=cicdate  这儿日期怎么得到7天前的呢
(
echo open 127.0.0.1
echo hanrj
echo 123
echo prompt
echo get %cicdate%*.zip
echo mdelete *%deldata%*.bak
)> test1.txt
ftp -s:E:\b\test1.txt
PAUSE

bat命令最好到windows版去问,bat计算上很麻烦,建议用wscript可以写js或vbs脚本,功能更强大。

不熟悉,wsf脚本用的多一些,windows自带,不需要安装额外的软件

批处理获取指定天数之前的日期
@echo off

::需要调用VBS

rem 指定天数

set DaysAgo=1

>"%temp%\MyDate.vbs" echo LastDate=date()-%DaysAgo%

>>"%temp%\MyDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)

>>"%temp%\MyDate.vbs" echo wscript.echo FmtDate

for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (

  set DstDate=%%a

)

set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%

echo %DaysAgo%天之前的日期是:%DstDate%

pause
复制代码@echo off

::本例需要reg.exe的支持(XP系统自带)

::此类方法的关键在于如何获取标准化的当前系统日期

::请参考http://bbs.bathome.net/thread-3328-1-1.html

::然后调用 Ritchie Lawrence 的日期函数,便可扩展出很多种方法,此处不再赘述。

::日期转换的核心算法请参考http://bbs.bathome.net/thread-3056-1-1.html

 

rem 指定天数

set DaysAgo=1

for /f "skip=4 delims= " %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (

  set RegDateOld=%%a

)

set RegDateOld=%RegDateOld:~-8%

reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul

call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays

reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul

set /a PassDays-=%DaysAgo%

call :DaysToDate %PassDays% DstYear DstMonth DstDay

set DstDate=%DstYear%-%DstMonth%-%DstDay%

echo %DaysAgo%天之前的日期是:%DstDate%

pause

goto :eof

 

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:DateToDays %yy% %mm% %dd% days

::

:: 作者:Ritchie Lawrence, 2002-09-26. 版本 1.0

::

:: 功能:返回从 1970 年 1 月 1 日到给定的日期之间所经过的天数。

::       适用于 NT4/2000/XP/2003.

::

:: 参数:%1 待转换的年,两位或者四位(传值调用)

::       %2 待转换的月,可以以零开头(传值调用)

::       %3 待转换的日,可以以零开头(传值调用)

::       %4 该变量用于接收所经过的天数(引用调用)

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

setlocal ENABLEEXTENSIONS

set yy=%1&set mm=%2&set dd=%3

if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)

set /a dd=100%dd%%%100,mm=100%mm%%%100

set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2

set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633

endlocal&set %4=%j%&goto :EOF

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:DaysToDate %days% yy mm dd

::

:: 作者:Ritchie Lawrence, 2002-06-15. 版本 1.1

::

:: 功能:从 1970-01-01 到指定日期之间所经过的天数对应的日历日期。

::       适用于 NT4/2000/XP/2003.

::

:: 参数:%1 从 1970-01-01 到指定日期之间所经过的天数(传值调用)

::       %2 该变量用于接收年,四位(引用调用)

::       %3 该变量用于接收月,两位,01-12(引用调用)

::       %4 该变量用于接收日,两位,01-31(引用调用)

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

setlocal ENABLEEXTENSIONS

set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a

set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5

set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10

(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)

endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    lotus数据列表文档个数如何实时统
    lotus代理中LS如何将字符串保存到
    在lotus BS系统里怎样方便实现统
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    linux上运行system函数时,print
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    servlet技术实现用户名唯一的验证
    undefined reference timer_crea
    Failed to open eth0
    C/C++洗牌算法源代码
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    如何把dos 批处理结果写入tx
    数据容灾备份软件Acronis和赛
    双局域网、双网卡如何配置Wi
    win8 ubuntu共存,无法进去b
    windows server 2008远程桌面
    windows 2008 被黑了之后发现
    win7下vs2008开发windows CE
    win2008 共享访问权限设置命
    Windows2008 R2的Turn Windo
    批量注册当前文件夹下所有dl
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |