批处理问题,急啊,高手请进!

来源:百度知道 编辑:UC知道 时间:2024/05/28 18:37:10
我现在需要一个将一个文件夹里的文件按时间顺序删除的批处理.
例如:2007-1-1星期一,2007-1-2星期二,....,到第八天后,将2007-1-1星期一那个文件删除的批处理,循环删除,也就是保留七天的数据.
哪位高手,能解决.这是我自动网络备份中的一部分,只要求保留七天数据.备份的那部分已经解决,现在就无法解决这个保留七天数据问题!急啊!
dospcl:
是这样的,我每天从服务器上将文件备份到另外一台机器上,而这个文件的名称是2007-1-1星期一,2007-1-2星期二,...依次类推,按时间命名。但我只允许七天前的数据,也就是1号到8号的数据,我就要把1号的数据删除,相当与每天都在删除了,因为9号就要删除2号的数据了。这该怎么办。下面是我的备份批处理语句:
@echo off
net use z: \\ip地址\d$ 密码 /user:用户
date /t >d:\b\tmp.txt
for /f "tokens=1,2 delims= " %%i in (tmp.txt) do set today=%%i%%j
xcopy z:\a\%today%*.tmp d:\b\ /f
del tmp.txt
下面就要写删除数据的命令了
麻烦你了

我试了好久发现好难,毕竟功力尚浅,无法回答。

@echo off
for /f "delims=*" %%i in ('dir /ad /b ^| find "%date:~-3%"') do (
pause
rd "%%i"
pause
)

本来想用这个获取日期的,然后删除,再一想才发现漏洞百出。。。
要删除7天前的文件还需计算日期,这个日期计算起来比较麻烦
你的文件名是 日期的完全格式 即 2007-01-01 星期一

@echo off
set num=%date:~8,2%
if %num:~0,1%==0 set num=%num:~-1%
set /a n=%num%-7
if %n:~0,1% neq 0 set n=0%n%
echo %date:~0,8%%n%%date:~-4%
pause
)

所以抱歉啦!

换一个备份软件更方便