中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]批处理自动删除N天之前文件目录
<   <<   [1] [2] [3]  >>
作者:
标题: [已结]批处理自动删除N天之前文件目录 上一主题 | 下一主题
yuehong
初级用户





积分 64
发帖 37
注册 2007-3-14
状态 离线
『第 31 楼』:  

Originally posted by dddyjq1 at 2008-10-21 01:15 AM: 翻个老贴给你 ,测试成功的 @echo off SET TT=1 set p1=%date:~0,4% set p2=%date:~5,2% set p3=%date:~8,2% setlocal enabledelayedexpansion for /l %%a in (1,1,3) do ( for /f "del ...
2000下面还是不行 出现: 此时不应有 "。 此时不应有 "。 此时不应有 "。 此时不应有 "。 此时不应有 "。


2008-10-21 18:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 32 楼』:  

我这边的情况:
@echo off
set TT=5&set "ph=d:\000"
for /f "tokens=1-3 delims=-/\:. " %%i in ("%date%") do set /a p1=%%i,p2=100%%j%%100,p3=100%%k%%100
    if %p3% gtr %TT%  goto ppp
:nxt
set/a p2-=1
   if %p2% equ 0 set/a p1-=1,p2=12
   set/a PN2="!(p1%%4)&!(!(p1%%100))|!(p1%%400)",PN2=28+PN2
   for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set/a p3+=%%i
   if %p3% leq %tt% goto nxt
:ppp
set/a p3-=tt
setlocal enabledelayedexpansion
   for %%i in (p2 p3) do if !%%i! lss 10 set %%i=0!%%i!
     for /f "skip=7 tokens=1,3*" %%i in ('dir /ad /tc "%ph%" 2^>nul^|find /v "字节"') do (
       if %p1%-%p2%-%p3% gtr %%i echo rd /s /q "%ph%\%%k"
)
pause&exit


附件 1: aaa.gif (2008-10-21 19:48, 4.97 K, 下载附件所需积分 1 点 )




简单!简单!再简单!
2008-10-21 19:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yuehong
初级用户





积分 64
发帖 37
注册 2007-3-14
状态 离线
『第 33 楼』:  

Originally posted by terse at 2008-10-21 07:48 PM: 我这边的情况: [code] @echo off set TT=5&set "ph=d:\000" for /f "tokens=1-3 delims=-/\:. " %%i in ("%date%") do set /a p1=%%i,p2=100%%j%%100,p3=100%%k%% ...
测试成功,感谢!! 要是d:\000下面的文件也要删除呢?怎么处理?麻烦了。。。


2008-10-21 22:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 34 楼』:  

Originally posted by yuehong at 2008-10-21 22:09: 测试成功,感谢!! 要是d:\000下面的文件也要删除呢?怎么处理?麻烦了。。。
其实这个就是我20楼 给你的 你竟然顶到这里 删文件 你要先dir /a-d /b 然后 判断时间 后 del




简单!简单!再简单!
2008-10-21 23:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
aphasia
新手上路





积分 1
发帖 1
注册 2008-10-27
状态 离线
『第 35 楼』:  

很好啊


2008-10-27 16:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qwertl
中级用户





积分 461
发帖 243
注册 2007-10-14
状态 离线
『第 36 楼』:  

在win2003下正常删 set FileDate=2008-10-27 22:20 set FileDate=!FileDate:-=! set FileDate=!FileDate:~0,8! if !FileDate! LSS 20081018 (echo ....) 在win2000下要怎样改这个代码呢? set FileDate=08-10-22 17:56 set FileDate=!FileDate:-=! set FileDate=!FileDate:~0,8! if !FileDate! LSS 20081023 (echo ....) set desfolder=e:\rardata setlocal enabledelayedexpansion >"%tmp%\MyDel.vbs" echo dt=date()-11 >>"%tmp%\MyDel.vbs" echo s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2) >>"%tmp%\MyDel.vbs" echo wscript.echo s for /f %%a in ('cscript /nologo "%tmp%\MyDel.vbs"') do set DateFlag=%%a echo %DateFlag% pause for /f "tokens=*" %%a in ('dir /s /b /a-d "%desfolder%"') do ( set FileDate=%%~ta 这里取得的文件日期与xp 及2003不同. set FileDate=!FileDate:-=! set FileDate=!FileDate:~0,8! if !FileDate! lss %DateFlag% ( echo "%%a" ) ) pause


2008-11-3 11:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
<   <<   [1] [2] [3]  >>
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: