需要特定的过滤输出

need specific filtered output

我试试这个命令

get-wmiobject win32_networkadapter -filter "netconnectionstatus = 2" |
  Select macaddress | Select -Last 1

我想摆脱格式 table where says macaddress.

我该怎么做?我只想要 macaddress 而不是 table.

Select-Object 选择对象的属性(除其他外)。不过,结果仍然是一个对象列表(表格输出显示对象的属性)。如果您只想要特定 属性 的值,则需要扩展它:

get-wmiobject win32_networkadapter -filter "netconnectionstatus = 2" |
  Select <b>-Expand</b> macaddress | Select -Last 1

编辑: 正如评论中提到的@FrodeF,您还可以将 2 个 Select-Object 语句合并为一个:

get-wmiobject win32_networkadapter -filter "netconnectionstatus = 2" |
  Select <b>-Expand</b> macaddress <b>-Last 1</b>

但是请注意,在这种情况下,-Last 1 适用于 Select-Object 的输入,而不是选定的 属性。这适用于 MAC 个地址,因为每个网络适配器只能有一个,但在其他情况下可能不会产生预期的结果。示例:

PS C:\> <b>Get-WmiObject Win32_NetworkAdapterConfiguration |</b>
>> <b>? { $_.IPEnabled -eq $true } |</b>
>> <b>select -Expand IPAddress -Last 1</b>
>>
192.168.56.99
fe80::21ba:e68c:ebd0:1046
PS C:\> <b>Get-WmiObject Win32_NetworkAdapterConfiguration |</b>
>> <b>? { $_.IPEnabled -eq $true } |</b>
>> <b>select -Expand IPAddress | select -Last 1</b>
>>
fe80::21ba:e68c:ebd0:1046

这里的 IPAddress 属性 有两个值(IPv4 地址和 IPv6 地址)。因此,在第一种情况下 select -Expand IPAddress -Last 1 选择最后一个适配器配置对象,然后扩展 IP 地址列表。在第二种情况下 select -Expand IPAddress | select -Last 1 展开所有适配器的 IP 地址列表,然后选择结果列表的最后一项。