我原来用这个命令,来保留最近7个备份,但对archivelog,则用不了,因为我不知道每天产生的文件数目。
for /f "skip=7" %%i in ('dir F:\mybackup\*.dmp /tc /o-d /b') do del %%i
我希望达到的目的是,每天删除过期的archivelog,使当前目录里的archivelog文件只保留一个礼拜以内生成的。
请给几句关键的命令,谢谢。
@echo off
setlocal enabledelayedexpansion
mshta vbscript:createobject("scripting.filesystemobject").opentextfile("outputdate",2,true).writeline(dateadd("d",-7,"%date:~0,10%"))(window.close)
for /f "tokens=1-3 delims=- " %%1 in (outputdate) do (set y=%%1
if %%2 leq 9 (set m=0%%2)else set m=%%2
if %%3 leq 9 (set d=0%%3)else set d=%%3)
del=outputdate& set lastdate=%y%-%m%-%d%
for %%1 in (c:\a\*)do (set createdate=%%~t1
set createdate=!createdate:~0,10!
if !createdate! lss !lastdate! del /a /f "%%~1")作者: holyunicorn 时间: 2009-2-26 09:56 在windows2000下运行
@echo off
setlocal enabledelayedexpansion
mshta vbscript:createobject("scripting.filesystemobject").opentextfile
("outputdate",2,true).writeline(dateadd("d",-7,"%date:~4,10%"))
(window.close)
for /f "tokens=1" %%1 in (outputdate) do (set lastdate=%%1)
del=outputdate& set lastdate=%lastdate:~2,8%
for %%1 in (c:\a\*)do (set createdate=%%~t1
set createdate=!createdate:~0,8!
if !createdate! lss !lastdate! del /a /f "%%~1")作者: holyunicorn 时间: 2009-2-26 10:02 分为两个批处理的原因是,在两种系统下,%date:~0,10%的格式不一样,%%~t1的格式也不一样,dateadd出来的结果也不同.
Originally posted by holyunicorn at 2009-2-26 10:02 AM:
分为两个批处理的原因是,在两种系统下,%date:~0,10%的格式不一样,%%~t1的格式也不一样,dateadd出来的结果也不同.
哪位能告诉我,怎么才能把两个系统的date格式调一致,我调整了windows区域管理里的日期格式,发现没有任何用处.