中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 请教批处理删除目录的问题 上一主题 | 下一主题
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『楼 主』:  请教批处理删除目录的问题

原本利用批处理在各驱动设备下建了一些目录,在没有用attrib给myCatalogue.txt列表中的目录+s +h +r前能用以下批处理完全删除(包括后面的子目录 abc):
@echo off
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if not exist %%a:\nul goto :eof
echo %%a drive OK !
for /f %%b in (myCatalogue.txt) do (
IF EXIST %%b\nul goto 1
echo 目录不存在!  
rem md %%a:\%%b
rem md %%a:\%%b\abc\
:1
echo 目录存在删除!
rd %%a:\%%b\abc\
rd %%a:\%%b
)
)
pause


但用attrib给myCatalogue.txt列表中的目录+s +h +r后就只能删除各目录下面的子目录abc,却不能删除myCatalogue.txt列表中的目录,提示"文件名,目录名或卷标语法不正确".里面增加一行
attrib %%a:\%%b -s -h -r又不能运行.
恳请各位高手指点,到底错在哪里?应该怎样写才对?

2007-6-18 10:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

自己调试一下,看到底错在哪里了。

首先这条命令就有问题:

IF EXIST %%b\nul goto 1

没有加入盘符,应该是类似这样的:
if exist %%a:\%%b\nul goto 1



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-6-18 10:53
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 3 楼』:  

加入了盘符情形还是一样,"文件名,目录名或卷标语法不正确"

2007-6-18 11:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 4 楼』:  

这种情况下只有你自己能够调试出到底错在哪里了。到底文件名或者目录名的语法是如何不正确的?



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-6-18 11:08
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 5 楼』:  

大侠,就是说原来这个批处理都能正常运行,是在每个目录(除下面的abc)加了+s +h +r后就出现这种问题了.

2007-6-18 11:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 6 楼』:  

原来的能够正常运行,并不意味着你原来的批处理就是正确的,至少我看就有问题。

你将开始的echo off命令去掉,然后看一下具体的命令行到底错在哪里了。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-6-18 11:11
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 7 楼』:  

好的,我试试

2007-6-18 11:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 8 楼』:  

c:\>rd %a:\%b
文件名,目录名或卷标语法不正确


另:我的目录名是autorun.inf,auto.inf等

2007-6-18 11:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 9 楼』:  

在rd %%a:\%%b前增加一行:
attrib -s -r -h %%a:\%%b
然后再试一下。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-6-18 11:26
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 10 楼』:  

c:\>attrib -s -r -h %%a:\%%b
找不到路径 - c:\%a:

c:\>rd %a:\%b
文件名,目录名或卷标语法不正确

2007-6-18 11:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 11 楼』:  

完整过程:
c:\>scml.bat
c:\>for %a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if not exist %a:\nul goto :eof
echo %a drive OK !
for /f %b in (myCatalogue.txt) do (
IF EXIST %a:\%b\nul goto 1
echo 目录不存在!  
rem md %a:\%b
rem md %a:\%b\abc\
:1
echo 目录存在删除!
rd %a:\%b\abc\
attrib -s -r -h %a:\%b
rd %a:\%b
)
)

c:\> (
if not exist %a:\nul goto :eof
echo c drive OK !
for /f %b in (myCatalogue.txt) do (
IF EXIST c:\%b\nul goto 1
echo 目录不存在!  
rem md c:\%b
rem md c:\%b\abc\
:1
echo 目录存在删除!
rd c:\%b\abc\
attrib -s -r -h c:\%b
rd c:\%b
)
)
c drive OK !
c:\>(IF EXIST auto.inf\nul goto 1
echo 目录不存在!  
rem md c:\auto.inf
rem md c:\auto.inf\abc\
:1
echo 目录存在删除!
rd c:\auto.inf\abc\
attrib -s -r -h c:\auto.inf
rd c:\auto.inf
)
c:\>echo 目录存在删除!
目录存在删除!
c:\>attrib -s -r -h %a:\%b
找不到路径 - c:\%a:

c:\>rd %a:\%b
文件名,目录名或卷标语法不正确
c:\>pause

[ Last edited by 9299 on 2007-6-18 at 11:50 AM ]

2007-6-18 11:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 12 楼』:  

问题还没解决.不过先谢谢Climbing
大侠!

2007-6-18 15:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 13 楼』:  

你把完整的批处理及那个mycatalogue.txt传上来。我觉得你的批处理写得有问题。否则不可能出现这种错误:

c:\>attrib -s -r -h %a:\%b
找不到路径 - c:\%a:
错误中的c:是从哪里来的?



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-6-18 15:37
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 14 楼』:  

上传不上来,我直接给显算了
myCatalogue.txt:
auto.inf
autorun.inf
autorun.pif
ghost.pif

主要目的防U盘病毒!

2007-6-18 15:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9299
初级用户





积分 46
发帖 20
注册 2007-6-17
状态 离线
『第 15 楼』:  

啊,忘了,还有最前两行是实验用的
aa.inf
bb.pif

2007-6-18 15:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: