【问题标题】:Convert Get-WmiObject win32_diskdrive to array in Powershell 4将 Get-WmiObject win32_diskdrive 转换为 Powershell 4 中的数组
【发布时间】:2016-07-27 20:24:37
【问题描述】:

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

这是命令行:

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

这是输出结果:

\.\PHYSICALDRIVE0
\.\PHYSICALDRIVE1

我想这样写

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

感谢您的帮助!

【问题讨论】:

    标签: arrays powershell get-wmiobject


    【解决方案1】:

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

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

    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"
    

    【讨论】:

    • 这对我来说很好用!!非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 2015-11-23
    • 2019-06-15
    相关资源
    最近更新 更多