中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教高手:如何判断盘符是硬盘还是光驱或是软驱
« [1] [2] »
作者:
标题: 请教高手:如何判断盘符是硬盘还是光驱或是软驱 上一主题 | 下一主题
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『楼 主』:  请教高手:如何判断盘符是硬盘还是光驱或是软驱

各位高手,我目前在写一个ACCESS绿色版,我想实现一个批处理实现在硬盘或在光盘或是在WINPE多环境中实现启动环境的设置。但是不知道怎么使用批处理判断盘符是硬盘还是光驱或是软驱或是虚拟磁盘?
请各位高手指教!
ACCESS绿色版本下载地址:ftp://xbdsoft.vicp.net (晚上7点后才开通)
QQ交流:9399100

2006-12-5 23:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 2 楼』:  

怎么没有人回答我,是太简单了,还是太难了。

2006-12-6 08:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 3 楼』:  

还是没有人回答,再等待,自己顶下。。。。。。。。。。。。。

2006-12-7 09:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 4 楼』:  

补充下:如何使用批处理或DOS判断盘符是硬盘还是光驱或是软驱或是移动盘?

2006-12-7 09:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  


   Windows XP sp2 @ CMD  下面:
fsutil fsinfo drivetype %cd:~0,2%


2006-12-7 10:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 6 楼』:  


@echo off
    set /p x=输入盘符:
    for /f "skip=1" %%i in ('wmic logicaldisk where "deviceid='%x%:'" get Description 2^>nul') do set type=%%i
    if not defined type set type=此驱动器不存在!   
    echo %x%:盘的类型为: %type%
    pause>nul
goto :eof


2006-12-7 11:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 7 楼』:  

可惜 fsutil 和 WMIC 只限于 XP Pro 或更高版本,XP Home 和 2000 都没有这个命令




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-12-7 12:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by electronixtar at 2006-12-7 12:11:
可惜 fsutil 和 WMIC 只限于 XP Pro 或更高版本,XP Home 和 2000 都没有这个命令

试试这个命令:
start msinfo32 /categories +componentsstoragedrives /report info.txt
然后针对info.txt进行过滤则可得到分区情况了。

   此帖被 +3 点积分     点击查看详情   
评分人:【 lxmxn 分数: +3  时间:2006-12-7 16:40


2006-12-7 12:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 9 楼』:  


  版主真是强啊,这样的参数都挖掘出来了,佩服中……


2006-12-7 16:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by 3742668 at 2006-12-7 12:21:

试试这个命令:
start msinfo32 /categories +componentsstoragedrives /report info.txt
然后针对info.txt进行过滤则可得到分区情况了。

谢谢几位楼主的精彩回答。的确判断磁盘类型受到很大的现在,即使使用
start msinfo32 /categories +componentsstoragedrives /report info.txt也有出现问题的地方,我这里使用DEEPIN的操作系统,系统里根本就没有这个命令,然后跑到别人的机器上试,产生了INFO.TXT文件,却是空的,我使用start msinfo32 也跳不出对话来,可能是他的电脑有问题吧,我最后跑到服务器上实验,结果才出来了。

还有没有其他的方法比较通用一点的,如果有工具也可以。

2006-12-10 05:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 11 楼』:  

这样应该可以。
用ghost32.exe,运行ghost32  -dd,得到GHSTSTAT.TXT,里面的内容如下,分析一下,应能判断出来。
---------------------
*********************************
Date   : Sat Dec 09 16:52:21 2006
Error Number: (0)
Message: Stats Dump
Version: 8.3.0.1331 (Nov 28 2005, Build=1331)
OS Version: Microsoft Windows XP Professional Service Pack 1 (Build 2600)
Command line arguments: -dd
Active Switches :
       AutoName
PathName            :
DumpFile            :
DumpPos             : 0
FlagImplode         : 0
FlagExplode         : 0

Operation Details :
  Total size.........0
  MB copied..........0
  MB remaining.......0
  Percent complete...0%
  Speed..............0 MB/min
  Time elapsed.......0:00   
  Time remaining.....0:00   

Program Call Stack
sub_main
main

Call Stack
Address            Frame              Logical Addr              Module
0x000000007ffe0304 0x000000000012fbe0 0x0000:0x0000000000000000
0x000000000048fb28 0x000000000012fcc4 0x0001:0x000000000008eb28 D:\Ghost32.exe
0x00000000004023da 0x000000000012fdf0 0x0001:0x00000000000013da D:\Ghost32.exe
0x0000000000405e58 0x000000000012fee4 0x0001:0x0000000000004e58 D:\Ghost32.exe
0x0000000000419f91 0x000000000012ffc0 0x0001:0x0000000000018f91 D:\Ghost32.exe
0x0000000077e614c7 0x000000000012fff0 GetCurrentDirectoryW+0x0000000000000044
End Call Stack


Start heap available: 143282176
Cur   heap available: 142778368
Total Memory:         385335296

Conventional Memory
Inital Conventional Memory Size = 0
Current Conventional Memory Size = 0
Allocated
  33500 ghost.cpp:1386
Free

Fat details:

NTFS details:
----------------

NTFS Global Flags:
----------------
         contiguousWrite=1 forceDiskClusterMapping=0
         inhibitCHKDSK=1 ignoreBadLog=0 ignoreCHKDSKBit=0
         enable_cache=0 xfrbuflen=0
         last_attr_type = 0
         loadExact = 0
----------------

Disk Info :
  remote.............0
  drive..............0
  sectors_used.......39069884
  estimated_used.....0
  pemax..............3
  Version............0

# Ord Boot Id Ext     First        Num       Last       Used NTFS
0  0   80   b No         63    8193080    8193143          0 No
1  1    0   7 Yes    8193213   10233342   18426555          0 No
2  2    0   b Yes   18426618   20643462   39070080          0 No

Disk Info :
  remote.............0
  drive..............0
  sectors_used.......0
  estimated_used.....0
  pemax..............0
  Version............0

# Ord Boot Id Ext     First        Num       Last       Used NTFS

Fixed Drives

Drive 0 TOSHIBA MK2018GAP Z1GC3227T
WinNT (Active)
Total Sectors            39070080
Bytes per Sector         512
MB                       19077
Cylinders                2432
Heads                    255
Sectors per Track        63
Successful IO Count      67

Floppy Drives

Remote Drives
AsyncIo : 0
Image Devices

Key[1]   1:1
Key[2]   C:
Path     C:
Desc     C: 1:1 [WINXP]
Type     FAT
Disk     0
Offset   63

Key[1]   1:2
Key[2]   D:
Path     D:
Desc     D: 1:2 [PRO]
Type     NTFS
Disk     0
Offset   8193213

Key[1]   1:3
Key[2]   E:
Path     E:
Desc     E: 1:3 [DATA]
Type     FAT
Disk     0
Offset   18426618

Key[1]   F:
Path     F:
Desc     F:
Type     CD

Key[1]   I:
Path     I:
Desc     I:
Type     CD


*********************************



Windows 一键还原
http://www.yjhy.com
2006-12-10 05:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 12 楼』:  

依我的意思,还是用 \\?\CdRom0吧。软驱就不用判断了,不是A: 就是 B:。至于光驱, tree \\?\CdRom0\ 就可以得到光驱列表。




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-12-10 09:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by lxmxn at 2006-12-7 10:21:

   Windows XP sp2 @ CMD  下面:
fsutil fsinfo drivetype %cd:~0,2%

问下XMXN兄,%cd:~0,2%表示什么意思,是不是一个特殊变量,是不是表示返回到根目录,实际是取当前路径的最前面两个字符,那么%cd:~0,3%就是取当前路径的的前三个字符,如C:\
很有意思,这些东西以前都没有见过。非常感谢,如果上面是特殊变量的话,能否提供更多的特殊变量的用法。

2006-12-12 02:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by lianjiang2004 at 2006-12-10 05:54:
这样应该可以。
用ghost32.exe,运行ghost32  -dd,得到GHSTSTAT.TXT,里面的内容如下,分析一下,应能判断出来。
------------------@...

此方法的确可以,但是比较麻烦,一是必须要有GHOST32.EXE这个文件,其次使用命令后产生的文本内容不是很固定,所以分析该文件比较困难。
谢谢楼主的回答,期待更好的方法。

2006-12-12 02:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 15 楼』:  



  Quote:
Originally posted by electronixtar at 2006-12-10 09:39:
依我的意思,还是用 \\?\CdRom0吧。软驱就不用判断了,不是A: 就是 B:。至于光驱, tree \\?\CdRom0\ 就可以得到光驱列表。

好象这个不能判断驱动器的类型吧,只能判断是否有光盘存在,我使用你的命令,结果返回的“无效驱动器规格”,不知道什么意思。

2006-12-12 03:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: