中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]检测所有盘下指定目录的存在
作者:
标题: [求助]检测所有盘下指定目录的存在 上一主题 | 下一主题
afeng999
新手上路





积分 6
发帖 6
注册 2009-6-23
状态 离线
『楼 主』:  [求助]检测所有盘下指定目录的存在

有目录 A  和 目录 B   固定路径  根目录\123\   下
想检测  所有盘下的 目录A 和目录B

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 exist %%a:\123\A (echo 已存在!~~ & pause >nul & goto 2) else goto 3)
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 exist %%a:\123\B (echo 已存在!~~ & pause >nul & goto 2) else goto 3)

不知哪里错了..麻烦会的更正下,,,谢谢!!!

2009-6-26 01:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
afeng999
新手上路





积分 6
发帖 6
注册 2009-6-23
状态 离线
『第 2 楼』:  

这两段代码 应该能写在一起..不过我不会太复杂的架构!!

     麻烦高手们指点下

2009-6-26 01:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 3 楼』:  


@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 exist %%a:\123\A\ (echo %%a 盘已存在目录 A!) else echo %%a 盘不存在相应目录!
 if exist %%a:\123\B\ (echo %%a 盘已存在目录 B!) else echo %%a 盘不存在相应目录!
)
pause




┌───────┐
├→学习→实践→┤
└───────┘
2009-6-26 01:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
afeng999
新手上路





积分 6
发帖 6
注册 2009-6-23
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by wxcute at 2009-6-26 01:57:
[code]@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 exist %%a:\123\A\ (echo %%a 盘已存在目录 A!) else echo %%a 盘不存在相应目录!
 if exist %%a ...

如果存在 goto 3  不存在 goto 2   应该怎么写??? 再加多个else 就不行了

2009-6-26 02:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 5 楼』:  

1,在for的内部一般不要用goto,否则循环将被终止
2,如果不需要echo,可以用别的命令替换他
3,标签最好不要只用数字
@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 exist %%a:\123\A\ (echo %%a 盘已存在目录A &call :han2) else echo %%a 盘不存在目录A &call :han3
 if exist %%a:\123\B\ (echo %%a 盘已存在目录B &call :han2) else echo %%a 盘不存在目录B &call :han3
)
pause
goto :eof
:han2
echo 要执行的操作2
goto :eof
:han3
echo 要执行的操作3
goto :eof
如果不想echo显示结果,可以
@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 exist %%a:\123\A\ (call :han2) else call :han3
 if exist %%a:\123\B\ (call :han2) else call :han3
)
pause
goto :eof
:han2
echo 要执行的操作2
goto :eof
:han3
echo 要执行的操作3
goto :eof
[ Last edited by Hanyeguxing on 2009-6-26 at 02:59 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-6-26 02:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
afeng999
新手上路





积分 6
发帖 6
注册 2009-6-23
状态 离线
『第 6 楼』:  

问题解决了..
       谢谢...!帮助...学习ing!!

2009-6-26 03:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: