标题: 讨论:在没有管理员权限的情况下获取光盘盘符
[打印本页]
作者: 26933062
时间: 2008-6-5 01:31
标题: 讨论:在没有管理员权限的情况下获取光盘盘符
前几天帮一会员答题时,他的要求是不用fsutil 命令,
判断光驱盘符,且不止一个光驱,并不确定里面有没有盘。
还真是费了点脑筋,最后发现 vol 可以分别取到不同的值,在我的电脑上测试通过,
不知各位还有没有更好的方法呢,。。。
@echo off
set "p=c d e f g h i j k l m n o p q r s t u v w x y z"
for %%i in (%p%) do (
for /f "tokens=1-4 delims= " %%a in ('vol %%i: 2^>^&1') do (
if "%%a"=="设备未就绪。" call set g=%%g%% %%i
if "%%d"=="我的光盘" call set g=%%g%% %%i
))
echo 光驱盘符是 %g%
pause
───────────────── 版务记录 ─────────────────
执行:HAT
操作:[2008-11-10]在帖子标题中增加搜索关键字
说明:原标题"讨论:不用 fsutil 命令获取光盘盘符"不利于论坛搜索
───────────────── 版务记录 ─────────────────
[
Last edited by HAT on 2008-11-10 at 12:27 ]
作者: pusofalse
时间: 2008-6-7 22:14
试了一下。。。的确可以,效率有点问题。 可能原因是没有判断分区是否存在 而填上一句if exist %%i:\ 就会出错了,结果没检测出来。。。。
作者: quya
时间: 2008-6-8 20:56
vol 数值似乎是随机的啊,难道光驱和其他盘的VOL 明显不同?
说说原理啊,谢谢。
作者: knoppix7
时间: 2008-6-8 21:28
设备未就绪的差不多可以算作光驱...
还有一种判断方法就是Dir 可用字节0 不能写入文件等..
作者: HAT
时间: 2008-6-8 23:41
用wmic获取光驱盘符是否会效率高些呢?
@echo off
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='5'" get * /value ^| findstr /i "^DeviceID"') do echo 光驱盘符:%%a
作者: 26933062
时间: 2008-6-8 23:45
怪我没说清楚,应该是在没有管理员权限的情况下。