中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (已结)如果在WINDOWS下DOS命令行删除N天以前的文件
« [1] [2] [3] »
作者:
标题: (已结)如果在WINDOWS下DOS命令行删除N天以前的文件 上一主题 | 下一主题
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 16 楼』:  

Re Will Sort:

嘿嘿,之所以我只用for /f,是因为说实在的,我一直没有太搞明白for命令的很多用法,至少我一直就不太明白for /r是什么意思,但刚才我自己试了一下,终于是明白一点儿了,所以我那条命令可以改成:
for /r %dst% %%f in (*.*) do if %%~tf LSS %1 del /f /q %%f && echo 删除 %%f

呵呵,原因就是这么简单,我对技术的追求不象Wil兄那样执着,我的目标就是完成任务就好。说实在的,我对Wil兄写批处理的技巧是打心底里佩服的,但却感觉自己永远也达不到这种水平,而且我觉得Wil兄的批处理技巧是有余了,但实在不容易让人看明白,你楼上那个批处理,直到回这个帖子的时候我才算是看明白了。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-26 20:17
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
zybird
中级用户




积分 240
发帖 53
注册 2005-1-21
状态 离线
『第 17 楼』:  

前些天我写了两个Dos下的小程序,刚好可以完成这项任务。

批处理的内容是这样的:
******************************************************
@echo off

rem ============================================
rem 这个批处理的作用是删除d:\datafile里面
rem 最后一次修改是7天之前(不包括7天)的
rem 所有文件(包括所有子目录里的文件)
rem ============================================



rem ============================================
rem 得到7天前的日期
rem 如果今天是8月25,则7天前是日期是 8月18日
rem ============================================
GetInfo.COM /d:-7
set theDay=%year%-%mon%-%day%



rem ============================================
rem   这是在D:\datafile中搜索8天前(含8天)修改过的文件
rem  即8月17日 及 之前 修改的文件
rem ============================================
attrib/s d:\datafile\*.* -h -r -s
:Loop
dirt.com /d:-%theDay% d:\datafile\*.* /q
if %DirtRet%==Fail goto end
del %FPath%\%FName%
goto Loop

:end


******************************************************



里面的DirT.com和GetInfo.com可以到http://www.13886.com/soft//下载,


win2000的Dos里del命令好象有一个参数,可以在删除文件的时候不用用户的确认,你可以在del %FPath%\%FName%里加入那个参数

[ Last edited by zybird on 2006-5-6 at 13:38 ]

2005-8-29 13:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 18 楼』:  

这两个命令倒挺有意思,也很有用,能不能直接用附件传到这里来,因为那个网址无法访问了。

   此帖被 +1 点积分    点击查看详情   
评分人:【 zjutsoft 分数: +1  时间:2008-7-17 11:02




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-29 17:02
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
zybird
中级用户




积分 240
发帖 53
注册 2005-1-21
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by Climbing at 2005-8-29 05:02 PM:
这两个命令倒挺有意思,也很有用,能不能直接用附件传到这里来,因为那个网址无法访问了。

在ys168上不知道为什么总是会出现无法下载,现在我上传到这里。

如果使用的过程,有什么疑问或出现什么错误,请告诉我!谢谢!


Getinfo.com 和 dirt.com   可以直接在下面这个网址下载了!!

http://www.13886.com/soft/

[ Last edited by zybird on 2006-5-6 at 13:37 ]

2005-8-29 18:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 20 楼』:  

谢谢zybird朋友,这两个命令都是用Qbasic开发的吧?



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-29 23:47
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
zybird
中级用户




积分 240
发帖 53
注册 2005-1-21
状态 离线
『第 21 楼』:  

不客气!

这是用 tc++ 3.0写的

2005-8-30 13:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 22 楼』:  

Re All:

      因为个人原因,一个星期没有来论坛了,发现变化真是不小!现在附上9楼解题思路中1提到的set /a计算日期差值的方案。至于第三方程序,zybird的程序已经很好了,向 zybird 兄致敬。
:: DateDel2.bat - 删除指定路径下指定日数以前修改的文件
:: Will Sort - 2005-9-2 - CMD@WinXP
:: 注意事项:参数%1指定日数,昨天为1,前天为2,依次类推
::           参数%1指定文件路径,省略时将处理当前路径
:: 核心算法:Ritchie Lawrence, updated 2002-08-13. Version 1.1
::
@echo off & setlocal ENABLEEXTENSIONS
call :Date2Day %date:~0,10% sdays
set /a sdays-=%1
call :Day2Date %sdays% difdate
echo 将删除 %cd% 下 %difdate% 前的修改的以下文件:
for /r %2 %%f in (*.*) do if "%%~tf" LEQ "%difdate%" echo "%%f"
goto :EOF

:Date2Day
setlocal ENABLEEXTENSIONS
for /f "tokens=1-3 delims=/-, " %%a in ('echo/%1') do (
  set yy=%%a & set mm=%%b & set dd=%%c
)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %2=%j%&goto :EOF

:Day2Date
setlocal ENABLEEXTENSIONS
set /a i=%1,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%-%mm%-%dd%&goto :EOF




※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-9-2 15:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
smileseeker
中级用户




积分 316
发帖 83
注册 2005-3-1
状态 离线
『第 23 楼』:  

请问下各位大侠
为什么在win2000的命令行下无法显示year mon day 等环境变量?

D:\MULTIT~1\Getinfo>getinfo /d:-2
D:\MULTIT~1\Getinfo>echo %day%
%day%

2005-10-17 19:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
smileseeker
中级用户




积分 316
发帖 83
注册 2005-3-1
状态 离线
『第 24 楼』:  

Quote:
Originally posted by Climbing at 2005-8-25 17:38:
for /f "tokens=*" %f in ('dir /b/s') do @if %~tf LSS 2005-08-17 echo %~tf %f  

强啊!!!



同意!!!

[ Last edited by smileseeker on 2005-10-17 at 20:12 ]

2005-10-17 20:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zybird
中级用户




积分 240
发帖 53
注册 2005-1-21
状态 离线
『第 25 楼』:  

getinfo.com目前还无法修改cmd.exe中的环境变量,cmd.exe跟dos不一样

2005-10-19 21:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tianlei
新手上路





积分 10
发帖 5
注册 2005-11-9
来自 中国杭州
状态 离线
『第 26 楼』:  

“for /f "tokens=*" %f in ('dir /b/s') do @if %~tf LSS 2005-08-17 echo %~tf %f”
里面的“%”在这里代表什么呀,请哪位指点一下?

2005-11-10 00:20
查看资料  发送邮件  发短消息 网志  OICQ (281380316)  编辑帖子  回复  引用回复
tyh
初级用户





积分 80
发帖 43
注册 2007-4-21
状态 离线
『第 27 楼』:  

我靠,看不懂````晕了。

2007-6-8 09:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ningshaody
新手上路





积分 2
发帖 1
注册 2007-10-10
状态 离线
『第 28 楼』:  能不删除文件夹

上面方法删除文件好用,能不能不删除文件夹?

2007-10-10 10:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ribood
新手上路





积分 12
发帖 4
注册 2006-10-24
状态 离线
『第 29 楼』:  

菜鸟请教地区为英文的操作系统 date显示为10/10/2007 wed 批处理应该怎么写??

2007-10-10 19:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lzmuhioin
初级用户





积分 51
发帖 24
注册 2007-9-18
状态 离线
『第 30 楼』:  

牛人啊,,,太强了...学得不少

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


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



论坛跳转: