中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 01:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样删除各盘内指定文件夹? 查看 1,006 回复 14
楼 主 怎样删除各盘内指定文件夹? 发表于 2008-06-19 23:23 ·  中国 广东 深圳 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
想要删除各盘根目录里FOUND.*的文件夹,和%windir%里$*$文件夹
(不是文件哦,还有删除里面的全部文件)

set alldrive=c d e f g h i
for /f %%i in ('dir /ad /b %alldrive%:\^|find "found"') do rd /q/s %%i

好像FOR删不了FOUND.*的文件夹啊...
2 发表于 2008-06-20 02:47 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
原因是%alldrive%这里使用有误,你的for命令并没有对每个磁盘进行遍历,因此失败,试试这个?

set alldrive=c d e f g h i
for %%a in (%alldrive%) do (
for /f "delims=" %%b in ('dir /ab/b %%a:\found.*') do (
rd /s /q "%%a:\%%b"
)
)

for /f "delims=" %%a in ('dir /ad/b %windir%\$*$') do rd /s/q "%windir%\%%a"
3 发表于 2008-06-20 16:47 ·  中国 广东 佛山 禅城区 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
Originally posted by lxmxn at 2008-6-20 02:47 AM:
原因是%alldrive%这里使用有误,你的for命令并没有对每个磁盘进行遍历,因此失败,试试这个?

set alldrive=c d e f g h i
for %%a in (%alldrive%) do (
f ...



这个没有权限的限制吧?
4 发表于 2008-06-20 16:57 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by ixxxxyou at 2008-6-20 04:47 PM:



这个没有权限的限制吧?

如果你的没有,斑竹的也没有。
5 发表于 2008-06-20 23:33 ·  中国 广东 佛山 禅城区 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
Originally posted by lxmxn at 2008-6-20 02:47 AM:
原因是%alldrive%这里使用有误,你的for命令并没有对每个磁盘进行遍历,因此失败,试试这个?

set alldrive=c d e f g h i
for %%a in (%alldrive%) do (
f ...



运行这批后..出现 参数格式不正确 - "b" 这样的提示..
就found.*文件没有删除掉
6 发表于 2008-06-21 03:22 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
set alldrive=c d e f g h i
for %%a in (%alldrive%) do (
for /f "delims=" %%b in ('dir /ad/b %%a:\found.*') do (
rd /s /q "%%a:\%%b"
)
)

for /f "delims=" %%a in ('dir /ad/b %windir%\$*$') do rd /s/q "%windir%\%%a"

这样可以吗?
7 发表于 2008-06-21 19:57 ·  中国 广东 佛山 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
Originally posted by HAT at 2008-6-21 03:22 AM:
set alldrive=c d e f g h i
for %%a in (%alldrive%) do (
for /f "delims=" %%b in ('dir /ad/b %%a:\found.*') do (
rd /s /q "%%a:\%%b"
)
)

f ...



这个可以删除了.. 但会出现"设备未就绪"
8 发表于 2008-06-21 20:00 ·  中国 广东 佛山 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
OK~! 知道那里出问题了
9 发表于 2008-06-21 20:13 ·  中国 广东 佛山 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
for /f "delims=" %%a in ('dir /ad/b %windir%\$*$') do rd /s/q "%windir%\%%a"

这一句如果没有文件时会提示找不到文件..加了>nul 2>nul也一样显示啊??
10 发表于 2008-06-21 20:29 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
你把>nul 2>nul加到哪里了?
11 发表于 2008-06-21 20:52 ·  中国 广东 佛山 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
for /f "delims=" %%a in ('dir /ad/b %windir%\$*$') do rd /s/q "%windir%\%%a" >nul 2>nul
12 发表于 2008-06-21 21:57 ·  泰国
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
for /f "delims=" %%a in ('dir /ad/b "%windir%\$*$" 1^>nul 2^>nul') do (rd /s/q "%windir%\%%a")
13 发表于 2008-06-22 00:44 ·  中国 广东 佛山 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
1^>nul 2^>nul中的1^和2^是什么意思啊?
14 发表于 2008-06-22 02:16 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by ixxxxyou at 2008-6-22 12:44 AM:
1^>nul 2^>nul中的1^和2^是什么意思啊?

CMD/DOS下符号的作用参考
http://www.cn-dos.net/forum/viewthread.php?tid=30985&fpage=4
15 发表于 2008-06-22 11:37 ·  中国 广东 汕头 电信
初级用户
积分 38
发帖 19
注册 2006-10-28 01:48
19年会员
UID 68569
性别 男
状态 离线
进来学习一下。
论坛跳转: