中国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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: