中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 07:57
47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]批处理自动删除N天之前文件目录
可打印版本  3,337 / 35
第16楼 flyinspace 发表于 2008-08-21 16:38
银牌会员 发帖 517 积分 1,206
。。

[ Last edited by flyinspace on 2008-8-21 at 04:45 PM ]
第17楼 flyinspace 发表于 2008-08-21 16:42
银牌会员 发帖 517 积分 1,206
问下。你生成的文件名是什么?
20080812?之样的?
第18楼 HAT 发表于 2008-08-21 16:49
版主 发帖 5,017 积分 9,023
顶楼有描述
2008-08-18
第19楼 flyinspace 发表于 2008-08-21 16:51
银牌会员 发帖 517 积分 1,206
现在假设你的文件夹里的文件都是按日期生成的。(我不理是什么文件名了)

千万不要乱自己建立文件夹了哦。:)嘿嘿。

那么给你一个简单的代码。不过不太安全,你要保证里面的文件不可以乱
下面是一句话代码

skip 是指跳过前 5 条



这里的代码可以测试,如果你发现满足你的条件。那么你就可以把rd那里的东西取出来了。。。。

记得,上面的条件是需要满足你说的每天建立一个备份文件夹的情况下才可以使用的。。而且该备份文件夹里不可以有其他的文件夹了。只能存在备份的文件。。

[ Last edited by flyinspace on 2008-8-21 at 04:59 PM ]
第20楼 terse 发表于 2008-08-21 18:01
银牌会员 发帖 946 积分 2,404
翻个老贴给你 不知道时间格式和你对不
第21楼 qwertl 发表于 2008-08-23 22:46
中级用户 发帖 243 积分 461
vbs文件是否在windows98、xp\2000\2003系统下都可以运行的?

HAT的自动删N日前文件VBS似懂非懂

--------------------------------------------------------------------------------
我要在win2000下自动删除目录rardata下的15天前的文件,要怎样改呢?win2003下有forfile是比较方便.




@echo off
>"%temp%\MyDate.vbs" echo dt=date()-5
>>"%temp%\MyDate.vbs" echo s=right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)
>>"%temp%\MyDate.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"' do set FiveDay=%%a
for /f %%a in ('dir /b /ad "D:\000"' do (
if "%%a" lss "%FiveDay%" (
rd /s /q "%%a"
)
)

[ Last edited by qwertl on 2008-8-23 at 10:56 PM ]
第22楼 HAT 发表于 2008-08-23 23:32
版主 发帖 5,017 积分 9,023
Re 21楼
第23楼 qwertl 发表于 2008-08-24 18:58
中级用户 发帖 243 积分 461
win2000的%data%是这样格式: 星期日 2008-08-24
第24楼 HAT 发表于 2008-08-24 20:05
版主 发帖 5,017 积分 9,023
Re 23楼
还不知道怎样修改这个吗?可以看看set的帮助。
第25楼 qwertl 发表于 2008-08-24 22:31
中级用户 发帖 243 积分 461
谢谢HAT的耐心指点!

现在看正找到延迟变量的内容,批处理的内容也真不少。

如果要执行的批处理不存放在D:\rardata目录下,for /f "tokens=*" %%a in ('dir /s /b /a-d "%SrcDir%"' 的dir后要指定删去文件的目录路径吧?

这两句是起什么作用呢?
s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2)

wscript.echo s

[ Last edited by qwertl on 2008-8-24 at 10:46 PM ]
第26楼 HAT 发表于 2008-08-24 23:06
版主 发帖 5,017 积分 9,023
批处理放在什么地方都行,因为数据的目录是这里指定的:
set SrcDir=D:\rardata

s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2)
wscript.echo s
调用VBS获取格式化的系统日期:
http://www.cn-dos.net/forum/viewthread.php?tid=41857&fpage=1&highlight=%2BHAT
第27楼 AppleWolf 发表于 2008-08-25 20:47
初级用户 发帖 41 积分 110
这个我写好了,用的方法比较老套


下面是判断是否是2天前的,如果是,就删,如果不是,就跳过。
希望各位高手不要笑我,我解决的办法有点笨。
第28楼 qwertl 发表于 2008-09-15 02:09
中级用户 发帖 243 积分 461
我们经常要在日常的工作中查找文件,要说linux下最强大的文件查找工具,非find莫属。find可以从文件名、读取修改时间、大小、类型等等来筛选文件,可以完成日常几乎所有的查找需求。

  来看一个简单的例子:

  find /tmp/ -name 'galeki*'

  意思就是在/tmp目录下找出以“galeki”开头的文件,-name指出是对文件名进行筛选,是不是很简单明了?除了文件名,find还有更强大的筛选条件:

  1.时间:

参数 意义
-atime n 上一次存取时间在n*24小时前以内的文件 用linux的find来实现是简单
-ctime n 上一次状态改变在n*24小时前以内的文件
-mtime n 上一次修改时间在n*24小时前以内的文件
-newer file 比file所指的文件还要新的文件
第29楼 yuehong 发表于 2008-10-20 23:28
初级用户 发帖 37 积分 64
没一个测试成功的。。
2000的时间格式为:

当前日期: 2008-10-20 星期一

希望哪位高手给个完整的
第30楼 dddyjq1 发表于 2008-10-21 01:15
初级用户 发帖 108 积分 175
翻个老贴给你 ,测试成功的

@echo off
SET TT=1
set p1=%date:~0,4%
set p2=%date:~5,2%
set p3=%date:~8,2%
setlocal enabledelayedexpansion
for /l %%a in (1,1,3) do (
for /f "delims=0 tokens=*" %%i in ("!p%%a!") do set p%%a=%%i
)
if %p3% gtr %TT% goto ppp
:nxt
set/a p2-=1
if %p2% equ 0 set/a p1-=1&&set p2=12
SET/a PN1=%p1%%%4
set PN2=28
if %PN1% EQU 0 set pN2=29
for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set/a p3=%p3%+%%i
if %p3% leq %tt% goto nxt
:ppp
set/a p3=%p3%-%tt%
set p2=0%p2%
set p2=%p2:~-2,2%
set p3=0%p3%
set p3=%p3:~-2,2%
for /r "C:\新建文件夹\" %%i in (*.*) do set t=%%~ti &&call :loop "%%~fi"
pause
goto :eof
:loop
if not "%~1" == "%~f0" (
IF %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% del %1
)
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023