$fini = @ScriptDir &"\d.ini"
_test()
FileDelete($fini)
$fini2 = @ScriptDir &"\di.ini"
Func _test()
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colDiskDrives = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")
For $objDrive In $colDiskDrives
$strDeviceID = StringReplace($objDrive.DeviceID, "\", "\\")
$colPartitions = $objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & $strDeviceID & """} WHERE AssocClass = Win32_DiskDriveToDiskPartition")
$Read = IniRead($fini, "磁盘","磁盘列表","") ;申明
$d = StringRight ($strDeviceID,1) ;读取磁盘号
IniWrite ($fini, "磁盘","磁盘列表",$Read&$d) ;申明+磁盘号,写入配置文件
IniWrite ($fini, "磁盘","HD"&$d,$objDrive.Caption) ;磁盘号\磁盘名,写入配置文件
$d=$d+1
For $objPartition In $colPartitions
$colLogicalDisks = $objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & $objPartition.DeviceID & """} WHERE AssocClass = Win32_LogicalDiskToPartition")
For $objLogicalDisk In $colLogicalDisks
$Read0 = IniRead($fini, "磁盘",$objDrive.Caption,"") ;读取磁盘分区
$dd = StringLen($Read0) ;读取磁盘分区号
$dd0 = $dd+1 ;读取磁盘分区号+1
$Str = StringReplace($objLogicalDisk.DeviceID, ":", "") ;删除分区号冒号
IniWrite ($fini, "磁盘",$objDrive.Caption,$Read0&$Str) ;磁盘名=分区名,写入配置文件
IniWrite (@ScriptDir &"\di.ini", "磁盘", $objLogicalDisk.DeviceID,$d&":"&$dd0) ;盘符名=磁盘号: 分区号
Next
Next
Next
EndFunc
|