![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 01:17 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于判断一个磁盘分区是否存在的cmd |
| 可打印版本 1,751 / 9 |
| 第1楼 wjgyz740526 | 发表于 2006-09-10 01:38 |
| 中级用户 发帖 44 积分 203 | |
|
关于判断一个磁盘分区是否存在的cmd 我想写一个判断特定磁盘分区(比如z盘)是否存在的cmd,有的话就执行特定命令,否则显示一个错误提示。cmd如下:
@echo off z: IF Errorlevel 0 GOTO right echo 你没有z盘 :right echo 你有z盘 pause 哪儿错了呢? 恳请赐教 |
|
| 第2楼 namejm | 发表于 2006-09-10 02:13 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
因为CMD是从上至下顺序执行的——如果中途没有goto之类的跳转语句的话,所以,当执行到echo 你没有Z盘 这一句的时候,因为没有跳转语句,所以程序会继续往下走,执行:right的内容。
解决办法是:在:right之上加一句pause && goto :eof。 |
|
| 第3楼 wjgyz740526 | 发表于 2006-09-10 04:48 |
| 中级用户 发帖 44 积分 203 | |
|
我想问一下,如果在cmd中进入一个不存在的盘符系统的错误码是0还是1?
我修改了一下。cmd如下: @echo off z: IF Errorlevel 0 GOTO error echo 你没有z盘 goto exit :error echo 你有z盘 :exit pause 这样还是不行?为什么? |
|
| 第4楼 namejm | 发表于 2006-09-10 06:20 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
错误码这个东西比较复杂,现在的用户可能都已经淡忘了。很不幸,对它我接触得不多,帮不上什么忙。建议你不用返回码来判断。
|
|
| 第5楼 wjgyz740526 | 发表于 2006-09-10 06:51 |
| 中级用户 发帖 44 积分 203 | |
|
那么,不用错误码该怎么解决呢?
楼上的兄弟能给出个方法吗? |
|
| 第6楼 vkill | 发表于 2006-09-10 06:56 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
返回码网上搜索也没有多少,这个自己试,可以用
if exist z:\nul 来判断 |
|
| 第7楼 namejm | 发表于 2006-09-10 06:58 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
在我的XP系统中,可以用这条语句来判断:if exist z: (echo 你有Z盘) else (echo 你没有Z盘),在纯DOS下应该没什么问题的。不知道你想用在什么环境中。
|
|
| 第8楼 wjgyz740526 | 发表于 2006-09-10 07:13 |
| 中级用户 发帖 44 积分 203 | |
|
受教了,没想到if exist 还能这样,我一直以为只能判断文件是否存在呢
|
|
| 第9楼 electronixtar | 发表于 2006-09-10 09:17 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
pushd C:>nul 2>nul && echo 有 ||echo 无
|
|
| 第10楼 namejm | 发表于 2006-09-10 09:35 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
呵呵,electronixtar的方法也不错,只是不知道在纯DOS下是否存在pushd命令。用该命令之后,最好不要忘记在适当的地方用popd来返回到当前的目录下。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |