标题: [文件操作] 利用Bat每日删除几G的文件 [打印本页]
作者: beshe 时间: 2011-1-18 10:24 标题: 利用Bat每日删除几G的文件
请问各位大牛如何高效率利用bat每日删除大概有4,5G(数量大概在40W个)的文件,目前我的想法是用一下代码,但发现效率很低,有没有好的方法,请大家多多出谋划策, 提前谢谢了。。。
- for /r "%StrPath%" %%i in (*) do (
- set ft=%%~ti
- set fdt=!ft:~0,10%!
- if !fdt! lss %tt% ( ‘’‘’ 判断是否早于7天
- @echo "%%~ti" del /a /f /s /q "%%i"
- del /a /f /s /q "%%i"
- )
- )
复制代码
[ 本帖最后由 beshe 于 2011-1-18 12:53 编辑 ]
作者: ithinkican 时间: 2011-1-18 10:48 标题: 不知道虚拟磁盘行不行、
也就把你经常要删除的文件夹虚拟到一个磁盘、然后快速格式化……
作者: hanyeguxing 时间: 2011-1-18 11:58
早于7天的比较时间是什么时间?创建、修改还是最近访问?
作者: hanyeguxing 时间: 2011-1-18 12:39
按修改日期判断,要求%date%和%%~ta均为2011-01-18 ...格式,时间为7天前:- @echo off
- set/a D=1%date:~8,2%%%100-7,M=1%date:~5,2%%%100,Y=%date:~0,4%
- if %D% leq 0 call:c_
- set M=0%M%&set D=0%D%
- setlocal enabledelayedexpansion
- for /r "指定路径" %%a in (*) do (
- set t=%%~ta
- if !t:~0,10! lss %Y%-%M:~-2%-%D:~-2% del /a/f "%%~fa"
- )
- exit
- :c_
- set/a M-=1,Y-=!M,M+=!M*12,"K=!(M-4)|!(M-6)|!(M-9)|!(M-11)","D+=!(M-2)*(28+!(Y%%4))+K*30+(!!(M-2)&!K)*31"
复制代码
[ 本帖最后由 hanyeguxing 于 2011-1-18 12:45 编辑 ]
作者: beshe 时间: 2011-1-18 12:41
不好意思,是最近修改时间
作者: beshe 时间: 2011-1-18 12:44 标题: 回复 4楼 的帖子
如何取得7天前的时间问题已经搞定,主要是现在效率不高,不知道有没有什么办法改进,实在不行就要考虑java了。。。
- set TimeInterval=-7
- set d=%date:~0,10%
-
- mshta vbscript:createobject("scripting.filesystemobject").opentextfile("wind.txt",2,true).writeline(dateadd("d","%TimeInterval%","%d%"))(window.close)
- for /f "tokens=1,2,3 delims=-" %%m in (wind.txt) do (
- set "year=%%m"&set "mon=%%n"&set "day=%%o"
- )
- if %mon% LSS 10 (set "mon=0%mon%" )
- if %day% LSS 10 (set "day=0%day%" )
-
- set tt=%year%-%mon%-%day%
复制代码
[ 本帖最后由 beshe 于 2011-1-18 12:52 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |