![]() |
中国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 |