中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-23 01:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求教:vbs中获取当前盘类型 查看 618 回复 1
楼 主 求教:vbs中获取当前盘类型 发表于 2009-09-01 15:13 ·  中国 山西 太原 迎泽区 联通
初级用户
积分 28
发帖 14
注册 2008-02-29 12:36
18年会员
UID 111702
性别 男
状态 离线
如题。

在类似的程序中,是通过遍历所有驱动器来获得磁盘类型的:

For Each disk In disks
……
Next

我的问题是:
如何直接取得磁盘类型?
如果当前盘类型<>1 (if ... then 语句) [这是我求教的]
显示 "当前盘X:\ 盘不是可移动盘,请在移动盘下执行本程序"
退出程序
结束判断 (End If)
2 发表于 2009-09-01 23:09 ·  中国 天津 联通
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线

Function ShowDriveType(objdrive)
Dim fso, d, t, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set d = fso.GetDrive(objdrive)
Select Case d.DriveType
Case 0: t = "Unknown"
Case 1: t = "Removable"
Case 2: t = "Fixed"
Case 3: t = "Network"
Case 4: t = "CD-ROM"
Case 5: t = "RAM Disk"
End Select
s = "Drive: " & d.DriveLetter & "(" & d.VolumeName & "); Type: " & t
Wscript.Echo s
End Function

Set fso = CreateObject("Scripting.FileSystemObject")
Set objdrives=fso.Drives
For Each objdrive In objdrives
ShowDriveType(objdrive)
Next


对于你的问题:


Dim drvName, drv
Set fso = CreateObject("Scripting.FileSystemObject")
drvName = left(Wscript.ScriptFullName, 1)
Set drv = fso.GetDrive(drvName)

If drv.DriveType <> 1 Then
msgbox "当前盘 " & Ucase(drvName) & ":\ 盘不是可移动盘,请在移动盘下执行本程序", 16, "警告"
Wscript.Quit
End If

msgbox "这下面是一些基于可移动磁盘 " & Ucase(drvName) & ":\ 的命令。", 64, "完成"


[ Last edited by qinchun36 on 2009-9-1 at 23:29 ]
论坛跳转: