中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 03:41
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]自动删除相隔第14天的文件夹 查看 840 回复 13
楼 主 [已结]自动删除相隔第14天的文件夹 发表于 2008-10-14 15:00 ·  中国 浙江 杭州 电信
初级用户
积分 20
发帖 9
注册 2008-10-14 14:35
17年会员
UID 128358
性别 男
状态 离线
比如服务器上现已有2008-10-12和2008-10-19两个文件夹,下周2008-10-26这天会自动在创建一个2008-10-26的文件夹,所以我想在创建2008-10-26文件夹之前先自动的删除前两周前创建的2008-10-12这个文件夹,依次类推,每过7天后又会创建一个以当天日期的文件夹,在创建之前要先删除上两周的那个时间文件夹

[ Last edited by HAT on 2008-10-14 at 16:06 ]
2 发表于 2008-10-14 15:08 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
2008-10-13 这样的文件夹有没有很多个?如果只有一个,那在创建文件夹前,执行 rd /s /q 2008* 就可以了吧
3 发表于 2008-10-14 15:12 ·  中国 浙江 杭州 电信
初级用户
积分 20
发帖 9
注册 2008-10-14 14:35
17年会员
UID 128358
性别 男
状态 离线
有两个的
4 发表于 2008-10-14 15:13 ·  中国 浙江 杭州 电信
初级用户
积分 20
发帖 9
注册 2008-10-14 14:35
17年会员
UID 128358
性别 男
状态 离线
rd /s /q 2008*这样把我的另外一个文件夹也删除了啊
5 发表于 2008-10-14 15:20 ·  中国 浙江 杭州 电信
初级用户
积分 20
发帖 9
注册 2008-10-14 14:35
17年会员
UID 128358
性别 男
状态 离线
不好意思重新编辑了一下内容,各位高手可能看的更清楚一点
6 发表于 2008-10-14 15:21 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
datex -d 2008-10-20 -o -7

http://www.vkill.net/tools/DateX_2.5.rar
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
7 发表于 2008-10-14 15:31 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@echo off
for /f "delims=" %%a in ('dir /a:d /t:c /b "c:\2008-*"') do echo rd /s /q "%%a" & exit /b

先运行这个批处理,看被删除的文件夹名称是否正确。没错的话,将 echo 删除。
(c:\ 是文件夹所在目录。如果批处理与文件夹在同一个目录,则不需要 c:\)

[ Last edited by tireless on 2008-10-14 at 16:07 ]
8 发表于 2008-10-14 15:42 ·  中国 浙江 杭州 电信
初级用户
积分 20
发帖 9
注册 2008-10-14 14:35
17年会员
UID 128358
性别 男
状态 离线
不好意思,我是菜鸟,将哪个 echo去掉啊,我不知道怎么写
9 发表于 2008-10-14 15:44 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
来个保险一点的:
@echo off
set SrcDir=C:\test
>"%temp%\MyDate.vbs" echo LastDate=date()-14
>>"%temp%\MyDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\MyDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (
set DateFlag=%%a
)
set DateFlag=%DateFlag:~0,4%-%DateFlag:~4,2%-%DateFlag:~6,2%
for /f %%a in ('dir /b /ad "%SrcDir%"') do (
if "%%a" equ "%DateFlag%" (
rd /s /q "%SrcDir%\%%a"
)
)

注:为了更保险,把判断条件从leq改成equ了。

[ Last edited by HAT on 2008-10-14 at 15:57 ]
10 发表于 2008-10-14 15:50 ·  中国 浙江 杭州 电信
初级用户
积分 20
发帖 9
注册 2008-10-14 14:35
17年会员
UID 128358
性别 男
状态 离线
版主,很感谢你,测试了一下还是不行的,删除不掉前14天的那个文件夹,set SrcDir=C:\test 的test是什么意思啊
11 Re 10楼 发表于 2008-10-14 15:56 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
假设你的2008-10-12和2008-10-19之类的文件夹都在C:\test里面
12 发表于 2008-10-14 16:01 ·  中国 浙江 杭州 电信
初级用户
积分 20
发帖 9
注册 2008-10-14 14:35
17年会员
UID 128358
性别 男
状态 离线
这个不受年份的限制吧
13 发表于 2008-10-14 16:03 ·  中国 浙江 杭州 电信
初级用户
积分 20
发帖 9
注册 2008-10-14 14:35
17年会员
UID 128358
性别 男
状态 离线
谢谢版主,解决了,太谢谢你了
14 Re 12楼 发表于 2008-10-14 16:06 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
从理论上来说,年份到达9999年以后,我也不知道接下来会发生什么事情。但是在我们有生之年,这个代码是不会受年份限制的。
论坛跳转: