forfiles /m *.log -d -7 /c "cmd /c del /f @path"
以上批处理已经在windows 2003的虚拟机上测试经过
方法3:
为网友提供,可适用于xp,2000,而forfiles默认只有2003以上的系统才有。
::删除F:\文件备份里的 7天前的txt文件
::被删除的文件日期以文件建立日期为主
@echo off
::取7天以前的日期.
>deldata_zw.zhu.vbs echo wscript.echo dateadd("d",-7,date)
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo deldata_zw.zhu.vbs') do (
set y=%%i
set m=%%j
set d=%%k
)
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set rq=%y%-%m%-%d%
echo 注意:即将删除 %rq% 之前创建的文件
pause
::判断文件
for /f "skip=4 delims=" %%i in ('dir/tc F:\TEST\*.log') do call :w "%%i"
del deldata_zw.zhu.vbs
goto :eof
:w
for /f "tokens=4 delims= " %%a in (%1) do set str=%%a
set var=%1
set num=%var:~1,10%
if %num% lss %rq% del /q F:\TEST\%str%
二:
自动建立每周运行一次的计划任务
建立计划任务可用at,schtasks命令,schtasks提供了不少参数
命令schtasks
SCHTASKS /Create [/S system [/U username [/P [password]]]]
[/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
[/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
[/RI interval] [ {/ET endtime | /DU duration} [/K] ]
[/SD startdate] [/ED enddate] [/IT] [/Z] [/F]
方法:
@echo off
schtasks /create /tn "Del-7_log" /ru system /tr D:\aizzw\del-7.bat /sc
weekly /d mon /st 01:00
start %systemroot%\tasks
echo 建立成功,请检查...
pause
del /f Create.bat
参数解释:
schtasks /create 指的是建立计划任务
/tn 指定计划任务的名称
/ru 指定运行该批处理的帐号,若是去掉该参数则默认为当前帐户运行,会提示输入密码。
一个计划任务所用的帐号若是密码变更后该批处理就再也不会运行成功
因此我这里使用系统帐号system,密码就省略不写。
/rp 指定帐号的密码
/tr 指定程序所在路径,这里为指定要执行的批处理存放路径。
/sc 为指定运行的周期
/d 为日期.这里mon为英文单词缩写,周一
/st 为运行时间
start %systemroot%\tasks 这一句只是为了弹出计划任务窗口查看建立成功与否
del /f Create.bat 为建立完成后自动删除建立该计划任务的批处理