标题: 请教高手:如何判断盘符是硬盘还是光驱或是软驱
[打印本页]
作者: HUNRYBECKY
时间: 2006-12-5 23:59
标题: 请教高手:如何判断盘符是硬盘还是光驱或是软驱
各位高手,我目前在写一个ACCESS绿色版,我想实现一个批处理实现在硬盘或在光盘或是在WINPE多环境中实现启动环境的设置。但是不知道怎么使用批处理判断盘符是硬盘还是光驱或是软驱或是虚拟磁盘?
请各位高手指教!
ACCESS绿色版本下载地址:
ftp://xbdsoft.vicp.net (晚上7点后才开通)
QQ交流:9399100
作者: HUNRYBECKY
时间: 2006-12-6 08:32
怎么没有人回答我,是太简单了,还是太难了。
作者: HUNRYBECKY
时间: 2006-12-7 09:42
还是没有人回答,再等待,自己顶下。。。。。。。。。。。。。
作者: HUNRYBECKY
时间: 2006-12-7 09:43
补充下:如何使用批处理或DOS判断盘符是硬盘还是光驱或是软驱或是移动盘?
作者: lxmxn
时间: 2006-12-7 10:21
Windows XP sp2 @ CMD 下面:
fsutil fsinfo drivetype %cd:~0,2%
作者: 3742668
时间: 2006-12-7 11:56
@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
作者: electronixtar
时间: 2006-12-7 12:11
可惜 fsutil 和 WMIC 只限于 XP Pro 或更高版本,XP Home 和 2000 都没有这个命令
作者: 3742668
时间: 2006-12-7 12:21
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进行过滤则可得到分区情况了。
作者: lxmxn
时间: 2006-12-7 16:40
版主真是强啊,这样的参数都挖掘出来了,佩服中……
作者: HUNRYBECKY
时间: 2006-12-10 05:11
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 也跳不出对话来,可能是他的电脑有问题吧,我最后跑到服务器上实验,结果才出来了。
还有没有其他的方法比较通用一点的,如果有工具也可以。
作者: lianjiang2004
时间: 2006-12-10 05:54
这样应该可以。
用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
*********************************
作者: electronixtar
时间: 2006-12-10 09:39
依我的意思,还是用 \\?\CdRom0吧。软驱就不用判断了,不是A: 就是 B:。至于光驱, tree \\?\CdRom0\ 就可以得到光驱列表。
作者: HUNRYBECKY
时间: 2006-12-12 02:43
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:\
很有意思,这些东西以前都没有见过。非常感谢,如果上面是特殊变量的话,能否提供更多的特殊变量的用法。
作者: HUNRYBECKY
时间: 2006-12-12 02:58
Quote: |
Originally posted by lianjiang2004 at 2006-12-10 05:54:
这样应该可以。
用ghost32.exe,运行ghost32 -dd,得到GHSTSTAT.TXT,里面的内容如下,分析一下,应能判断出来。
------------------@... |
|
此方法的确可以,但是比较麻烦,一是必须要有GHOST32.EXE这个文件,其次使用命令后产生的文本内容不是很固定,所以分析该文件比较困难。
谢谢楼主的回答,期待更好的方法。
作者: HUNRYBECKY
时间: 2006-12-12 03:04
Quote: |
Originally posted by electronixtar at 2006-12-10 09:39:
依我的意思,还是用 \\?\CdRom0吧。软驱就不用判断了,不是A: 就是 B:。至于光驱, tree \\?\CdRom0\ 就可以得到光驱列表。 |
|
好象这个不能判断驱动器的类型吧,只能判断是否有光盘存在,我使用你的命令,结果返回的“无效驱动器规格”,不知道什么意思。
作者: lxmxn
时间: 2006-12-12 04:06
Quote: |
问下XMXN兄,%cd:~0,2%表示什么意思,是不是一个特殊变量,是不是表示返回到根目录,实际是取当前路径的最前面两个字符,那么%cd:~0,3%就是取当前路径的的前三个字符,如C:\
很有意思,这些东西以前都没有见过。非常感谢,如果上面是特殊变量的话,能否提供更多的特殊变量的用法。 |
|
截取字符的你已经知道了。更多的变量见set命令。
作者: HUNRYBECKY
时间: 2006-12-13 00:26
感谢lxmxn的回答,正在学习中,最近找了很多WMI和WMIC的资料,如果有需要的给我留言。其中有一本基本上绝版的《WMI技术指南》