Board logo

标题: [原创]用\\?\CdRom0 判断光驱是否可用(2006-12-6 修订版) [打印本页]

作者: electronixtar     时间: 2006-12-5 07:11    标题: [原创]用\\?\CdRom0 判断光驱是否可用(2006-12-6 修订版)

按照以前的思路,调用 fsutil 需要管理员权限,而且必须是 XP Pro,兼容性不好。我研究了另外一种简洁的方法:
CODE:  [Copy to clipboard]
copy \\.\CdRom0\* nul >nul 2>nul  && echo OK || echo NO
CdRom0 就是你的系统里的第一个光驱啦,类推 CdRom1 CdRom2 等

光驱可用就显示 OK,没有就显示 NO

=========2006-12-6 修订版==========
CODE:  [Copy to clipboard]
if exist \\?\CdRom0\* (echo OK) else (echo NO)
请大家再帮忙测试

[ Last edited by electronixtar on 2006-12-7 at 05:12 AM ]
作者: redtek     时间: 2006-12-5 07:14
欣赏electronixtar兄大作~~:)
顶!!!
作者: electronixtar     时间: 2006-12-5 07:15
什么大作哦,不过你抢沙发太快啦
作者: anqing     时间: 2006-12-5 07:15
佩服
作者: electronixtar     时间: 2006-12-5 07:21
代码还有点问题,再试试~
作者: lxmxn     时间: 2006-12-5 11:21

  恩,把con改成nul就没有临时文件产生了。

作者: weapfe     时间: 2006-12-5 14:16
不知道哪位達人可以為小蝦們講解一下先~~~期待中。。。。
作者: ccwan     时间: 2006-12-5 20:42
欣赏……
electronixtar兄厉害。
作者: kcdsw     时间: 2006-12-7 02:11
怎么没人继续研究了?
作者: redtek     时间: 2006-12-7 02:29
electronixtar兄研究的方法用在COPY文件上也非常实用~:)

不需要知道光盘是哪个驱动器,只要知道要COPY光盘上的文件到哪里就行~:)
CODE:  [Copy to clipboard]
XCOPY  /S  \\?\cdrom0\.  C:\某某某目录
体会它的不同用处:


) 在不知道CDROM驱动器盘符的情况下,判断是否插入了光盘。

) 在不知道……………………………情况下,COPY光盘文件到指定地点。

) 在不知道……………………………情况下,COPY第n个CDROM驱动器内的光盘文件到指定地点。

) 印证系统有多少个CDROM驱动器,以备它用。

) 在代码中增加了代码的兼容性能与简单文件操作结构。

) ……

[ Last edited by redtek on 2006-12-6 at 01:39 PM ]
作者: 0401     时间: 2006-12-7 04:42
这个方法确实是挺另类的,请问electronixtar兄,在哪里可以找到这方面的资料,比如这里涉及的 "\\.\CDROM0" 这样路径?

还有这个命令有个缺点,如果光盘中没有文件,只有目录,那这个命令就无效了。
我一开始就一直NO,NO,NO。。。后来换张盘才发现原来先前的光盘中只有目录。
作者: electronixtar     时间: 2006-12-7 05:07


  Quote:
在哪里可以找到这方面的资料,比如这里涉及的 "\\.\CDROM0" 这样路径?

又是 Sysinternals 的一款大作:WinObj
作者: ccwan     时间: 2006-12-7 05:34
我感觉下面的代码就很有用,我的光驱为I盘
CODE:  [Copy to clipboard]
@echo off
if exist i:\nul.ext (echo 有光盘) else (echo 无光盘)
pause>nul

作者: 0401     时间: 2006-12-7 05:41
恩,IF表现得挺优秀的。
我把"\\?\"中的问号替换为"."就不行,为什么?

  Quote:
是 Sysinternals 的一款大作:WinObj

东西是找到了,就是看不懂...
作者: tao0610     时间: 2006-12-7 05:45
不错.
作者: electronixtar     时间: 2006-12-7 05:48


  Quote:
我感觉下面的代码就很有用,我的光驱为I盘

你的代码到了其他人的机器上也能兼容么?

  Quote:
恩,IF表现得挺优秀的。
我把"\\?\"中的问号替换为"."就不行,为什么?

执行 mountvol 就明白一些了
作者: ccwan     时间: 2006-12-7 06:16
汗……
下次不敢说话了
作者: 0401     时间: 2006-12-7 06:30
是明白一些了
作者: electronixtar     时间: 2006-12-7 06:31
哎呀,我不是批评你的意思啦,我只是讨论下嘛。或许我的语气太重了,见谅见谅~~~
作者: vkill     时间: 2006-12-8 06:13
C:\Documents and Settings\abc>if exist \\?\CdRom0\* (echo OK) else (echo NO)
NO

我的可以用啊~怎么?
作者: redtek     时间: 2007-1-31 07:04
又见到传说中的精彩帖子了,欣赏+狂顶~~`
作者: Jneny     时间: 2007-1-31 11:58
高手过招太精彩了,路径表示的方法有什么规定吗, 好奇特的表示方法哦,
作者: quya     时间: 2008-5-28 21:52
最简单的办法是
CODE:  [Copy to clipboard]
dir \\.\CdRom0\\>nul 2>nul  && echo OK || echo NO
这个是 26933062 会员的思路, 不敢掠美。

是由我的一个问题帖子引起的, 原帖见 http://www.cn-dos.net/forum/view ... ge=1&highlight=

[ Last edited by quya on 2008-6-30 at 06:52 PM ]
作者: xingsys     时间: 2009-4-12 11:49
太好了,解决了我一个大问题,ghost刻盘之后自动寻找光驱之的中文件并执行




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5