中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 06:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于文件夹中有日期的文件夹删除问题 查看 1,018 回复 3
楼 主 关于文件夹中有日期的文件夹删除问题 发表于 2010-03-30 09:34 ·  中国 上海 电信
初级用户
积分 21
发帖 10
注册 2007-03-30 02:03
19年会员
UID 83335
性别 男
状态 离线
我现在有很多文件夹,比如:
文件夹如下:
data星期一 2010-01-29
data星期二 2010-01-30
data星期三 2010-01-31
data星期四 2010-02-01
data星期五 2010-02-02
……
文件夹下还有很多文件夹和文件(不包含日期)

现在我想用批处理删除指定日期的文件夹以及下面的所有文件。
比如我想删除2010-02-01日以前所有的文件夹及文件
执行后应该只剩下
data星期四 2010-02-01
data星期五 2010-02-02
这2个目录和目录内的所有文件
该怎么编呢?

注意:上面“data星期一 2010-01-29”是一个目录

[ Last edited by jaceyxp on 2010-5-15 at 14:50 ]
2 发表于 2010-03-30 12:51 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a:d /b') do set i=%%i&if "!i:~0,5!"=="data " (
echo !i:~5!|findstr /i "^--$">nul
if !ERRORLEVEL!==0 if "!i:~5,4!!i:~10,2!!i:~13,2!" lss "20100201" (
attrib -r -s -h "%%i" /s
del "%%i" /a /s /q /f
rd "%%i" /s /q
))

说明:
如果目录中不存在其他命名方式的目录,则if "!i:~0,5!"=="data " (
echo !i:~5!|findstr /i "^--$">nul
if !ERRORLEVEL!==0 部分可以省略
如果目录及其子目录不存在系统或隐藏属性的问题,则attrib -r -s -h "%%i" /s可以省略
3 发表于 2010-05-15 14:48 ·  中国 上海 电信
初级用户
积分 21
发帖 10
注册 2007-03-30 02:03
19年会员
UID 83335
性别 男
状态 离线
不行啊,目录都没动
4 发表于 2010-05-15 16:30 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@echo off&setlocal enabledelayedexpansion
set/p p=日期如2010-02-01
for /f "tokens=1*" %%a in ('dir /ad /b^|findstr /e --') do set a=%%a&if "!a:~0,6!"=="data星期" if "%%b" lss "%p%" echo.rd /s /q "%%a %%b"
论坛跳转: