中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]可不可以用文件的最后访问时间为标准删除文件?
作者:
标题: [求助]可不可以用文件的最后访问时间为标准删除文件? 上一主题 | 下一主题
xiaopiaoaiting
初级用户





积分 28
发帖 11
注册 2008-2-13
状态 离线
『楼 主』:  [求助]可不可以用文件的最后访问时间为标准删除文件?

我做有一些歌库,客户用了一段时间后需要加一些新歌,但里面的空间毕竟有限。而一套歌库里面其实真正常唱的只有几千首歌。其他的一两年都没有人点一次。这样就占用蛮多的空间。 现在我想这样子:以最后访问时间为标准,删除某个时间前访问的文件。 不知道能不能够做出这样的批处理?那些文件后缀是vob mpg dat。 希望高手们能够帮助解决这个问题。感谢大虾们,祝大家新年发财。 ───────────────── 版务记录 ───────────────── 执行:HAT 操作:在帖子标题中增加搜索关键字 说明:原标题"[求助]可不可以用访问为条件删除文件?"不利于论坛搜索 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2008-9-27 at 10:44 ]


2008-2-13 20:04
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
digger
初级用户

游荡的孤魂



积分 79
发帖 29
注册 2007-4-2
来自 湖南
状态 离线
『第 2 楼』:  

没问题,dir /ta + for 解决掉。


2008-2-13 21:06
查看资料  发短消息  网志   编辑帖子  回复  引用回复
xiaopiaoaiting
初级用户





积分 28
发帖 11
注册 2008-2-13
状态 离线
『第 3 楼』:  

Originally posted by digger at 2008-2-13 09:06 PM: 没问题,dir /ta + for 解决掉。
晕,我好菜的啦!具体点可不可以?


2008-2-14 19:43
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
xiaopiaoaiting
初级用户





积分 28
发帖 11
注册 2008-2-13
状态 离线
『第 4 楼』:  

唉~!看来没人肯帮做个完美的解答了。真遗憾。


2008-2-16 03:54
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 5 楼』:  

@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


2008-2-16 15:03
查看资料  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 6 楼』:  

Originally posted by xiaopiaoaiting at 2008-2-16 03:54: 唉~!看来没人肯帮做个完美的解答了。真遗憾。
你完全可以搜索到的,代码给你了不知道怎么用怎么改也没办法了 代码删除30天未访问过的.dat .vob .mpg
@echo off
regedit /e "%temp%\bak.reg" "HKEY_CURRENT_USER\Control Panel\International"
>aDate.reg echo REGEDIT4
>>aDate.reg echo.
>>aDate.reg echo [HKEY_CURRENT_USER\Control Panel\International]
>>aDate.reg echo "sShortDate"="yyyy-MM-dd"
>>aDate.reg echo "sDate"="-"

>tmp.vbs echo Wscript.echo FormatDateTime (DateAdd("d",-30,Date),2)
for /f "delims=" %%i in ('cscript.exe //nologo tmp.vbs') do set aDate=%%i
del tmp.vbs
for /f "tokens=1,4" %%i in ('dir /s/a-d/ta "歌库\*"^|findstr /i ".dat .vob .mpg"') do if %%i lss %aDate% del /s/q/f "歌库\%%j" 2>nul
regedit /s aDate.reg
del aDate.reg
pause




2008-2-16 15:11
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 7 楼』:  

最后一行改成if %bb% leq %aa% echo %bb% %cc%会连访问时间一起显示


2008-2-16 16:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 8 楼』:  

还是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%


2008-2-16 16:40
查看资料  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 9 楼』:  

测试后发现处理不了带空格文件名的文件
@echo off regedit /e "%temp%\bak.reg" "HKEY_CURRENT_USER\Control Panel\International" >aDate.reg echo REGEDIT4 >>aDate.reg echo. >>aDate.reg echo [HKEY_CURRENT_USER\Control Panel\International] >>aDate.reg echo "sShortDate"="yyyy-MM-dd" >>aDate.reg echo "sDate"="-" regedit /s aDate.reg&del aDate.reg >tmp.vbs echo Wscript.echo FormatDateTime (DateAdd("d",-30,Date),2) for /f "delims=" %%i in ('cscript.exe //nologo tmp.vbs') do set aDate=%%i del tmp.vbs for /f "tokens=1,3*" %%i in ('dir /s/a-d/ta "歌库\*"^|findstr /i ".dat .vob .mpg"') do if %%i lss %aDate% del /s/q/f "歌库\%%k" 2>nul regedit /s "%temp%\bak.reg"&del "%temp%\bak.reg" pause
红色指定日期,蓝色要处理的目录(自行修改) [ Last edited by fastslz on 2008-2-17 at 01:29 PM ]




2008-2-16 18:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
xiaopiaoaiting
初级用户





积分 28
发帖 11
注册 2008-2-13
状态 离线
『第 10 楼』:  

哈哈~!!!得了。多谢~! 我用了6楼的方法,完全适用。哈哈~!! 非常感谢,在这里也学了不少的东西。


2008-2-17 20:59
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: