【问题标题】:How do I properly format this object in powershell?如何在 powershell 中正确格式化此对象?
【发布时间】:2018-05-29 10:49:27
【问题描述】:

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

[
  {"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

【问题讨论】:

    标签: windows shell powershell command-line command-line-interface


    【解决方案1】:

    您可以直接使用Get-WmiObject win32_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
    

    【讨论】:

    • 感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2017-07-14
    • 2021-08-10
    • 1970-01-01
    • 2019-11-01
    相关资源
    最近更新 更多