中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 02:33
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]检测所有盘下指定目录的存在 查看 645 回复 5
楼 主 [求助]检测所有盘下指定目录的存在 发表于 2009-06-26 01:42 ·  中国 广东 佛山 南海区 电信
新手上路
积分 6
发帖 6
注册 2009-06-23 00:54
17年会员
UID 147941
性别 男
状态 离线
有目录 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)

不知哪里错了..麻烦会的更正下,,,谢谢!!!
2 发表于 2009-06-26 01:44 ·  中国 广东 佛山 南海区 电信
新手上路
积分 6
发帖 6
注册 2009-06-23 00:54
17年会员
UID 147941
性别 男
状态 离线
这两段代码 应该能写在一起..不过我不会太复杂的架构!!

麻烦高手们指点下
3 发表于 2009-06-26 01:57 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
20年会员
UID 59307
状态 离线
@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
┌───────┐
├→学习→实践→┤
└───────┘
4 发表于 2009-06-26 02:40 ·  中国 广东 佛山 南海区 电信
新手上路
积分 6
发帖 6
注册 2009-06-23 00:54
17年会员
UID 147941
性别 男
状态 离线
Originally posted by wxcute at 2009-6-26 01:57:
@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 就不行了
5 发表于 2009-06-26 02:52 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
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 ]
6 发表于 2009-06-26 03:16 ·  中国 广东 佛山 南海区 电信
新手上路
积分 6
发帖 6
注册 2009-06-23 00:54
17年会员
UID 147941
性别 男
状态 离线
问题解决了..
谢谢...!帮助...学习ing!!
论坛跳转: