gpt4 book ai didi

powershell - 如何格式化 1-liner 以打印对象属性

转载 作者:行者123 更新时间:2023-12-03 22:52:16 28 4
gpt4 key购买 nike

我如何编写一个快速的 1-liner 来写入托管对象属性(比如 Name)?这是我要打印 ... 的 Name 的对象

Get-WmiObject -Class win32_ComputerSystem -namespace "root\CIMV2"

我试过...

 write-host $_.name | Get-WmiObject -Class win32_ComputerSystem -namespace "root\CIMV2"

但这似乎仍然打印所有对象属性。我该怎么做才能修复此命令?

最佳答案

您可以使用 Select-Object cmdlet-ExpandProperty 参数仅检索计算机名称,然后将其通过管道传输到 Write-Host(为了便于阅读,格式为多行):

Get-WmiObject -Class win32_ComputerSystem -namespace "root\CIMV2" `
| Select-Object -ExpandProperty 'Name' `
| Write-Host;

或者,使用 ForEach-Object cmdlet获取 Name 属性:

Get-WmiObject -Class win32_ComputerSystem -namespace "root\CIMV2" `
| ForEach-Object { $_.Name; } `
| Write-Host;

这不是单线,而是另一种类似于您尝试过的方法:

$computer = Get-WmiObject -Class win32_ComputerSystem -namespace "root\CIMV2";
Write-Host $computer.Name;

请注意,由于您只关心 Win32_ComputerSystemName 属性,因此最好使用-Property 参数,这样它就不会返回无论如何都会被丢弃的信息:

Get-WmiObject -Class win32_ComputerSystem -namespace "root\CIMV2" -Property 'Name'

关于powershell - 如何格式化 1-liner 以打印对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20640456/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com