BAT脚本如何查找%systemdrive%的分区号

我正在尝试编写一个BAT脚本来生成一个grub4dos menu.lst文件。

menu.lst文件中的启动项通常包含如下行:

root (hdx,y) 

其中x是硬盘号(第一个磁盘hd0),y是磁盘上的分区号(第一个分区是0)。 如何find%systemdrive%的磁盘和分区号?

该脚本将在Windows Vista或7下运行。

 WMIC LogicalDisk GET param1, param2 (etc.) 

我不确定是否有分区号码。 您可以检查的WMI类(例如LogicalDisk)的列表在这里: MSDN

如果你使用的是Windows 7,Powershell的select是:

 Get-WmiObject Win32_LogicalDisk | Where {$_.DriveType -eq "3"} | Select param1, param2 

编辑:有一个特定分区的类:Win32_DiskPartition这包含一个Index属性。 Name属性将给你的磁盘和分区ID(但你将不得不parsing它)。