0

如何将 Get-WmiObject 命令转换为数组并将其添加到组合框?

这是命令行:

Get-WmiObject -Query "select DeviceID from win32_diskdrive" | Select-Object -ExpandProperty  DeviceID | ft -HideTableHeaders -AutoSize | Out-String

这是输出结果:

\.\物理驱动0
\.\物理驱动1

我想这样写

"\.\PHYSICALDRIVE0","\.\PHYSICALDRIVE1"

谢谢您的帮助!

4

1 回答 1

0

的输出已经Get-WmiObject ... |Select-Object ... 一个数组 -Format-Table -HideTableHeaders只需逐行输出每个对象。

如果您想要您在问题中描述的字符串,请完全避免使用Format-*Out-Stringcmdlet:

PS C:\> $DiskDrives = Get-WmiObject -Query "SELECT DeviceID FROM Win32_DiskDrive" |Select-Object -ExpandProperty DeviceID
PS C:\> $DiskDrives -join ','
\\.\PHYSICALDRIVE0,\\.\PHYSICALDRIVE1

对于每个元素周围的双引号 ( "),我会选择-f格式运算符:

PS C:\> $DiskDrives.ForEach({'"{0}"' -f $_}) -join ','
"\\.\PHYSICALDRIVE0","\\.\PHYSICALDRIVE1"
于 2016-07-27T20:59:55.427 回答