无忧启动论坛

标题: 关于判断一个磁盘分区是否存在的cmd [打印本页]

作者: wjgyz740526    时间: 2006-9-9 18:54
标题: 关于判断一个磁盘分区是否存在的cmd
我想写一个判断特定磁盘分区(比如z盘)是否存在的cmd,有的话就执行特定命令,否则显示一个错误提示。cmd如下:

@echo off
z:
IF Errorlevel 0 GOTO error
echo 你没有z盘
goto exit
:error
echo 你有z盘
:exit
pause

哪儿错了呢?
我想问一下,如果在cmd中进入一个不存在的盘符系统的错误码是0还是1?
恳请赐教
作者: namejm    时间: 2006-9-9 18:58
  在DOS联盟已经有回复,请测试。
作者: wjgyz740526    时间: 2006-9-9 19:02
兄弟,谢谢你,我看了,你说最好不用错误码来判断那该怎么作呢?

我的这个已经修改了,还是不行?请指教
作者: wjgyz740526    时间: 2006-9-9 19:14
已经解决,谢谢 namejm
作者: yy1    时间: 2006-9-11 12:34
能否把你解决的办法帖上来分享一下~~
作者: namejm    时间: 2006-9-11 12:45
  其实挺简单的:

  1. @echo off
  2. if exist z: (echo 你有Z盘) else (echo 你没有Z盘)
  3. pause
复制代码

作者: wjgyz740526    时间: 2006-9-11 18:58
我的初衷本来是想判断D盘是否存在,有的话就自动将我的文档等文件夹设到D盘,用了上面的CMD后,出现一个问题,即当D为光驱时的错误.我现在修正了一下,以光盘中的特定文件来判断,算是达成了目的.

[ 本帖最后由 wjgyz740526 于 2006-9-11 06:59 PM 编辑 ]
作者: namejm    时间: 2006-9-11 20:24
  如果仅仅是为了判断D盘存在与否、是何种类型的驱动器的话,XP的系统用下面的代码就可以了,用特定文件来判断局限性是很大的。

  1. @echo off
  2. for /f "tokens=*" %%i in ('fsutil fsinfo drivetype d:') do (
  3.     echo %%i|find "固定">nul && echo 驱动器D:是硬盘分区 || echo 驱动器D:不存在或者不是硬盘分区
  4. )
  5. pause
复制代码

[ 本帖最后由 namejm 于 2006-9-16 12:19 AM 编辑 ]
作者: LanCat    时间: 2006-9-14 02:09
这里的问题真的很乱,都没有说明清楚环境的DOS版本号,纯DOS和WINDOWS下的DOS可以天差地别。上面的方法在纯DOS下若读到光驱是不行的。
作者: 小军军    时间: 2006-9-15 14:55
一点不乱, 6楼的else已经回答了,就是Windows下的命令行
作者: z8z8q    时间: 2006-9-18 05:31
学习一下




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3