|
sziang
新手上路
积分 16
发帖 7
注册 2008-8-18
状态 离线
|
『楼 主』:
[已结]批处理自动删除N天之前文件目录
我是单位的临时网管,备份OA服务器的数据是每天的工作内容之一,现在我是把OA服务器上应当备份的文件夹和文件进行全盘复制到以当天日期命名(如2008-08-18)生成的一个文件夹中(也是批处理,每天自动执行),由于备份的内容赿来赿大(备份一次达27.6G),我想求一个在备份的之前能够自动删除五天之前的备份目录(只保留五天的备份记录即可)的批处理文件,先谢了!我的系统是XP_SP1
[ Last edited by HAT on 2008-10-20 at 23:35 ]
|
|
2008-8-18 16:03 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
2 楼』:
@echo off
>"%temp%\MyDate.vbs" echo dt=date()-5
>>"%temp%\MyDate.vbs" echo s=right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)
>>"%temp%\MyDate.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do set FiveDay=%%a
for /f %%a in ('dir /b /ad') do (
if "%%a" lss "%FiveDay%" (
echo rd /s /q "%%a"
)
)
|
|
|
2008-8-18 16:26 |
|
|
sziang
新手上路
积分 16
发帖 7
注册 2008-8-18
状态 离线
|
『第
3 楼』:
非常感谢HAT朋友的答复!刚刚我将上述批处理放到目录中测试无效。我是在D盘根目录建一个000文件夹,将服务器文件(含目录)备份到此目录中分别生成的2008-08-12至2008-08-18的文件夹之中,现在只想保留2008-08-14之后的,请问怎么操作?不好意思,我是dos盲,请说具体点,再次谢谢!
|
|
2008-8-18 17:41 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
4 楼』:
@echo off
>"%temp%\MyDate.vbs" echo dt=date()-5
>>"%temp%\MyDate.vbs" echo s=right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)
>>"%temp%\MyDate.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do set FiveDay=%%a
for /f %%a in ('dir /b /ad "D:\000"') do (
if "%%a" lss "%FiveDay%" (
rd /s /q "%%a"
)
)
|
|
|
2008-8-18 17:48 |
|
|
sziang
新手上路
积分 16
发帖 7
注册 2008-8-18
状态 离线
|
『第
5 楼』:
测试还是不成功。。。。说具体点,谢了
|
|
2008-8-18 18:22 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
6 楼』:
把代码保存为xxx.bat
双击运行
把结果贴出来看看
>"%temp%\MyDate.vbs" echo dt=date()-5
>>"%temp%\MyDate.vbs" echo s=right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)
>>"%temp%\MyDate.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do set FiveDay=%%a
for /f %%a in ('dir /b /ad "D:\000"') do (
if "%%a" lss "%FiveDay%" (
rd /s /q "D:\000\%%a"
)
)
pause
|
|
|
2008-8-18 19:24 |
|
|
abcd
银牌会员
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
7 楼』:
这种东西,论坛早有,就不要回帖和发帖了。
|
|
2008-8-18 20:35 |
|
|
sziang
新手上路
积分 16
发帖 7
注册 2008-8-18
状态 离线
|
『第
8 楼』:
运行结果,图片已上传
[ Last edited by sziang on 2008-8-19 at 10:34 AM ]
|
|
2008-8-19 10:10 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
9 楼』:
看不到图片。
先把图片上传到论坛,再把链接放到img标签里面即可。
|
|
|
2008-8-19 10:47 |
|
|
wangwei4106
新手上路
积分 15
发帖 8
注册 2008-8-19
状态 离线
|
『第
10 楼』:
来混点积分看高级点的······
|
|
2008-8-19 10:53 |
|
|
sziang
新手上路
积分 16
发帖 7
注册 2008-8-18
状态 离线
|
『第
11 楼』:
D盘根目录下备份文件夹000
bat文件
bat文件运行情况
[ Last edited by sziang on 2008-8-19 at 03:34 PM ]
|
|
2008-8-19 15:29 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
12 楼』:
运行6楼的代码,结果贴出来看看
|
|
|
2008-8-19 15:32 |
|
|
sziang
新手上路
积分 16
发帖 7
注册 2008-8-18
状态 离线
|
|
2008-8-19 16:35 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
14 楼』:
代码更正如下:
>"%temp%\MyDate.vbs" echo dt=date()-5
>>"%temp%\MyDate.vbs" echo s=right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)
>>"%temp%\MyDate.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do set FiveDay=%%a
for /f "tokens=*" %%a in ('dir /b /ad "D:\000"') do (
if "%%a" lss "%FiveDay%" (
rd /s /q "D:\000\%%a"
)
)
pause
|
|
|
2008-8-19 17:21 |
|
|
sziang
新手上路
积分 16
发帖 7
注册 2008-8-18
状态 离线
|
『第
15 楼』:
还是没有用,运行结果和我那天发的一样
|
|
2008-8-21 15:47 |
|