![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 12:57 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]可不可以用文件的最后访问时间为标准删除文件? |
| 可打印版本 1,077 / 9 |
| 第1楼 xiaopiaoaiting | 发表于 2008-02-13 20:04 |
| 初级用户 发帖 11 积分 28 | |
|
[求助]可不可以用文件的最后访问时间为标准删除文件? 我做有一些歌库,客户用了一段时间后需要加一些新歌,但里面的空间毕竟有限。而一套歌库里面其实真正常唱的只有几千首歌。其他的一两年都没有人点一次。这样就占用蛮多的空间。
现在我想这样子:以最后访问时间为标准,删除某个时间前访问的文件。 不知道能不能够做出这样的批处理?那些文件后缀是vob mpg dat。 希望高手们能够帮助解决这个问题。感谢大虾们,祝大家新年发财。 ───────────────── 版务记录 ───────────────── 执行:HAT 操作:在帖子标题中增加搜索关键字 说明:原标题"可不可以用访问为条件删除文件?"不利于论坛搜索 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2008-9-27 at 10:44 ] |
|
| 第2楼 digger | 发表于 2008-02-13 21:06 |
| 初级用户 发帖 29 积分 79 来自 湖南 | |
|
没问题,dir /ta + for 解决掉。
|
|
| 第3楼 xiaopiaoaiting | 发表于 2008-02-14 19:43 |
| 初级用户 发帖 11 积分 28 | |
Originally posted by digger at 2008-2-13 09:06 PM: 晕,我好菜的啦!具体点可不可以? |
|
| 第4楼 xiaopiaoaiting | 发表于 2008-02-16 03:54 |
| 初级用户 发帖 11 积分 28 | |
|
唉~!看来没人肯帮做个完美的解答了。真遗憾。
|
|
| 第5楼 moniuming | 发表于 2008-02-16 15:03 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
@echo off
echo 日期格式为: 2008-01-01 set /p aa=请输入要删除的文件的访问日期(这个日期之前的文件也会被删除): for %%a in (vob mpg dat) do ( for /f "skip=5 tokens=1,2,3*" %%b in ('dir /od /ta /a-d *.%%a^|findstr /v "字节"') do ( set bb=%%b set cc=%%e call :aaa ) ) pause goto :eof :aaa if %bb% leq %aa% echo %cc% 如果日期格式不同,请适当更改 删除文件需谨慎,如果确定删除,请将最后一行的echo换成del /f /q |
|
| 第6楼 fastslz | 发表于 2008-02-16 15:11 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
Originally posted by xiaopiaoaiting at 2008-2-16 03:54: 你完全可以搜索到的,代码给你了不知道怎么用怎么改也没办法了 代码删除30天未访问过的.dat .vob .mpg |
|
| 第7楼 moniuming | 发表于 2008-02-16 16:16 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
最后一行改成if %bb% leq %aa% echo %bb% %cc%会连访问时间一起显示
|
|
| 第8楼 moniuming | 发表于 2008-02-16 16:40 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
还是6楼厉害,我的代码真的是......唉,还是改改吧(根据6楼的代码)
@echo off echo 日期格式为: 2008-01-01 set /p aa=请输入要删除的文件的访问日期(这个日期之前的文件也会被删除): for %%a in (dat mpg vob) do ( for /f "tokens=1,4" %%b in ('dir /od /ta /a-d ^|findstr /i ".%%a"') do ( set bb=%%b set cc=%%c call :aaa ) ) pause goto :eof :aaa if %bb% leq %aa% echo del /f /q %bb% %cc% |
|
| 第9楼 fastslz | 发表于 2008-02-16 18:32 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
测试后发现处理不了带空格文件名的文件
@echo off 红色指定日期,蓝色要处理的目录(自行修改) [ Last edited by fastslz on 2008-2-17 at 01:29 PM ] |
|
| 第10楼 xiaopiaoaiting | 发表于 2008-02-17 20:59 |
| 初级用户 发帖 11 积分 28 | |
|
哈哈~!!!得了。多谢~! 我用了6楼的方法,完全适用。哈哈~!!
非常感谢,在这里也学了不少的东西。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |