我尝试这个命令
get-wmiobject win32_networkadapter -filter "netconnectionstatus = 2" |
Select macaddress | Select -Last 1
我想摆脱格式化表格中的macaddress。
我该怎么做?我只想要macaddress而不是表。
答案 0 :(得分:0)
Select-Object
选择对象的属性(以及其他内容)。但结果仍然是对象列表(表格输出显示对象的属性)。如果您只想要特定属性的值,则需要对其进行扩展:
get-wmiobject win32_networkadapter -filter "netconnectionstatus = 2" |
Select -Expand macaddress | Select -Last 1
编辑:在评论中提到的@FrodeF,您还可以将2个Select-Object
语句合并为一个:
get-wmiobject win32_networkadapter -filter "netconnectionstatus = 2" |
Select -Expand macaddress -Last 1
但请注意,在这种情况下,-Last 1
适用于Select-Object
的输入,而不适用于所选属性。这适用于MAC地址,因为每个网络适配器只能有一个,但在其他情况下可能无法产生所需的结果。例如:
PS C:\> Get-WmiObject Win32_NetworkAdapterConfiguration |
>> ? { $_.IPEnabled -eq $true } |
>> select -Expand IPAddress -Last 1
>>
192.168.56.99
fe80::21ba:e68c:ebd0:1046
PS C:\> Get-WmiObject Win32_NetworkAdapterConfiguration |
>> ? { $_.IPEnabled -eq $true } |
>> select -Expand IPAddress | select -Last 1
>>
fe80::21ba:e68c:ebd0:1046
此处IPAddress
属性有2个值(IPv4地址和IPv6地址)。因此,在第一种情况下select -Expand IPAddress -Last 1
选择最后一个适配器配置对象,然后展开IP地址列表。在第二种情况下,select -Expand IPAddress | select -Last 1
展开所有适配器的IP地址列表,然后选择结果列表的最后一项。