中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 01:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]求助:全盘搜索文件夹并执行删除 查看 1,132 回复 12
楼 主 [已结]求助:全盘搜索文件夹并执行删除 发表于 2008-10-08 21:59 ·  中国 浙江 宁波 鄞州区 联通
初级用户
积分 53
发帖 24
注册 2007-06-15 10:33
19年会员
UID 91393
性别 男
状态 离线
求助:全盘搜索文件夹并执行删除

思路:硬盘的某分区有文件夹A,某分区有文件夹B,某分区有文件夹C,而且文件夹里面都有文件;
目的:全盘搜索文件夹并执行删除!

求各位大大们给个批处理代码,先谢谢了!!!

[ Last edited by HAT on 2008-10-13 at 13:59 ]
2 发表于 2008-10-09 01:36 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
本版搜索全盘搜索
3 发表于 2008-10-09 10:04 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@echo off
set drives=c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z:
for %%a in (%drives%) do (
if exist %%a (
for %%b in (A B C) do (
for /f "delims=" %%c in ('dir /s /b %%a\%%b 2^>nul') do rd /s /q "%%c"
)
)
)


[ Last edited by tireless on 2008-10-9 at 11:18 ]
4 发表于 2008-10-09 11:10 ·  中国 浙江 宁波 余姚市 联通
初级用户
积分 53
发帖 24
注册 2007-06-15 10:33
19年会员
UID 91393
性别 男
状态 离线
楼上的P处理好像不能删除哦。
5 Re 4楼 发表于 2008-10-09 11:18 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
疏忽了一个地方,删除文件夹的时候文件夹路径没有用双引号括起来...

再试试修改过的 3 楼的代码。

[ Last edited by tireless on 2008-10-9 at 11:31 ]
6 发表于 2008-10-09 11:44 ·  中国 浙江 宁波 余姚市 联通
初级用户
积分 53
发帖 24
注册 2007-06-15 10:33
19年会员
UID 91393
性别 男
状态 离线
试过了,还是不行。A B C 三个文件夹是隐藏且只读属性。


去掉文件夹的只读、隐藏属性后就可以搜索到并且可以删除,但加上只读、隐藏属性后就后就无法删除了。

还有个问题,就是文件夹在分区的根目录下也是无法删除的。

[ Last edited by stoneyu on 2008-10-9 at 11:50 ]
7 发表于 2008-10-09 12:19 ·  中国 广东 肇庆 广宁县 电信
中级用户
★★
积分 206
发帖 103
注册 2008-05-06 16:59
18年会员
UID 117911
性别 男
来自 广东 肇庆
状态 离线
用 wmic 只不过速度慢点.

wmic datafile where "filename='文件名' and extension='扩展名'" call delete /nointeractive
8 发表于 2008-10-09 12:24 ·  中国 广东 肇庆 广宁县 电信
中级用户
★★
积分 206
发帖 103
注册 2008-05-06 16:59
18年会员
UID 117911
性别 男
来自 广东 肇庆
状态 离线
sorry 楼上我写的是删除文件的,不是删除文件夹的.
9 发表于 2008-10-09 13:19 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@echo off
set drives=c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z:
for %%a in (%drives%) do (
if exist %%a (
cd /d %%a\
for %%b in (A B C) do (
for /r %%c in (%%b) do if exist %%c rd /s /q "%%c"
)
)
)


[ Last edited by tireless on 2008-10-9 at 14:17 ]
10 发表于 2008-10-09 13:48 ·  中国 浙江 宁波 余姚市 联通
初级用户
积分 53
发帖 24
注册 2007-06-15 10:33
19年会员
UID 91393
性别 男
状态 离线
tireless,非常感谢你!现在可以了,不过我试了好多次,也不知道为啥,我把P处理放到D盘任意一个文件夹的子目录里,运行了之后别的盘的文件夹都删除了,唯独有D盘的文件夹就没有被删除,试了很多次都是这个结果,不知道是啥原因呢?(注:把P处理移动到D盘的根目录时就不会出这我说的这种情况).
11 Re 10楼 发表于 2008-10-09 14:18 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
9楼的代码修改过了。应该没问题了。

其实我在帮你的同时我也学到了很多 :)

[ Last edited by tireless on 2008-10-9 at 14:21 ]
12 发表于 2008-10-10 21:58 ·  中国 浙江 宁波 联通
初级用户
积分 53
发帖 24
注册 2007-06-15 10:33
19年会员
UID 91393
性别 男
状态 离线
tireless,厉害!!!现在可以了,啥问题都没了。一个“\”就有这么大的作用啊!

感谢!!!
13 发表于 2008-10-11 01:50 ·  中国 四川 攀枝花 电信
新手上路
积分 14
发帖 9
注册 2008-10-11 00:58
17年会员
UID 128043
性别 男
状态 离线
不累同志 真牛X
论坛跳转: