Windows 如何在powershell中正确格式化此对象?

Windows 如何在powershell中正确格式化此对象?,windows,shell,powershell,command-line,command-line-interface,Windows,Shell,Powershell,Command Line,Command Line Interface,我正在尝试创建一个对象,其中包含有关所有驱动器的信息,如下所示: [ {"letter": "C:", "volumeName": "Disk C", "brand": "INTEL ModelName", "mediaType" : "Fixed hard disk media"}, {"letter": "D:", "volumeName": "Disk D", "brand": "Seagate ModelName", "mediaType" : "Fixed hard disk

我正在尝试创建一个对象,其中包含有关所有驱动器的信息,如下所示:

[
  {"letter": "C:", "volumeName": "Disk C", "brand": "INTEL ModelName", "mediaType" : "Fixed hard disk media"},
  {"letter": "D:", "volumeName": "Disk D", "brand": "Seagate ModelName", "mediaType" : "Fixed hard disk media"},
]
但以下powershell命令不仅会生成格式错误的结果,而且会为第一个磁盘的每个属性生成一个对象,而不是将每个磁盘的所有属性都放在一个对象中:

% {New-Object PSObject -Property @{'caption' =$(wmic logicaldisk get caption $_); 'volumeName' =$(wmic logicaldisk get VolumeName $_); 'brand' =$(wmic diskdrive get caption $_); 'format' =$(wmic diskdrive get mediaType $_);}} | format-list

您可以直接使用
get WmiObject win32\u logicaldisk
而不是使用wmic来获取它:

Get-WmiObject win32_logicaldisk | select `
@{N="letter";E={$_.deviceId}},
@{N="volumeName";E={$_.VolumeName}},
@{N="brand";E={$_.deviceId}},
@{N="mediaType";E={$_.Description}}
结果:

letter volumeName brand mediaType              
------ ---------- ----- ---------              
A:                A:    3 1/2 Inch Floppy Drive
C:                C:    Local Fixed Disk       
D:     OST        D:    Local Fixed Disk       
K:     DATA       K:    CD-ROM Disc

您可以直接使用
get WmiObject win32\u logicaldisk
而不是使用wmic来获取它:

Get-WmiObject win32_logicaldisk | select `
@{N="letter";E={$_.deviceId}},
@{N="volumeName";E={$_.VolumeName}},
@{N="brand";E={$_.deviceId}},
@{N="mediaType";E={$_.Description}}
结果:

letter volumeName brand mediaType              
------ ---------- ----- ---------              
A:                A:    3 1/2 Inch Floppy Drive
C:                C:    Local Fixed Disk       
D:     OST        D:    Local Fixed Disk       
K:     DATA       K:    CD-ROM Disc

谢谢你的回答!谢谢你的回答!