中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 12:42
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » (已结)如果在WINDOWS下DOS命令行删除N天以前的文件
可打印版本  29,124 / 39
第16楼 Climbing 发表于 2005-08-26 20:17
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
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兄的批处理技巧是有余了,但实在不容易让人看明白,你楼上那个批处理,直到回这个帖子的时候我才算是看明白了。
第17楼 zybird 发表于 2005-08-29 13:40
中级用户 发帖 53 积分 240
前些天我写了两个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 ]
第18楼 Climbing 发表于 2005-08-29 17:02
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
这两个命令倒挺有意思,也很有用,能不能直接用附件传到这里来,因为那个网址无法访问了。
第19楼 zybird 发表于 2005-08-29 18:47
中级用户 发帖 53 积分 240
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 ]
第20楼 Climbing 发表于 2005-08-29 23:47
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
谢谢zybird朋友,这两个命令都是用Qbasic开发的吧?
第21楼 zybird 发表于 2005-08-30 13:10
中级用户 发帖 53 积分 240
不客气!

这是用 tc++ 3.0写的
第22楼 willsort 发表于 2005-09-02 15:25
元老会员 发帖 1,512 积分 4,432
Re All:

因为个人原因,一个星期没有来论坛了,发现变化真是不小!现在附上9楼解题思路中1提到的set /a计算日期差值的方案。至于第三方程序,zybird的程序已经很好了,向 zybird 兄致敬。
第23楼 smileseeker 发表于 2005-10-17 19:56
中级用户 发帖 83 积分 316
请问下各位大侠
为什么在win2000的命令行下无法显示year mon day 等环境变量?

D:\MULTIT~1\Getinfo>getinfo /d:-2
D:\MULTIT~1\Getinfo>echo %day%
%day%
第24楼 smileseeker 发表于 2005-10-17 20:10
中级用户 发帖 83 积分 316
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 ]
第25楼 zybird 发表于 2005-10-19 21:10
中级用户 发帖 53 积分 240
getinfo.com目前还无法修改cmd.exe中的环境变量,cmd.exe跟dos不一样
第26楼 tianlei 发表于 2005-11-10 00:20
新手上路 发帖 5 积分 10 来自 中国杭州
“for /f "tokens=*" %f in ('dir /b/s') do @if %~tf LSS 2005-08-17 echo %~tf %f”
里面的“%”在这里代表什么呀,请哪位指点一下?
第27楼 tyh 发表于 2007-06-08 09:35
初级用户 发帖 43 积分 80
我靠,看不懂````晕了。
第28楼 ningshaody 发表于 2007-10-10 10:23
新手上路 发帖 1 积分 2
能不删除文件夹
上面方法删除文件好用,能不能不删除文件夹?
第29楼 ribood 发表于 2007-10-10 19:24
新手上路 发帖 4 积分 12
菜鸟请教地区为英文的操作系统 date显示为10/10/2007 wed 批处理应该怎么写??
第30楼 lzmuhioin 发表于 2007-10-12 09:54
初级用户 发帖 24 积分 51
牛人啊,,,太强了...学得不少
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023