如果使用Win32_NetworkAdapterConfiguration获取IP地址,如何对列表进行排序

时间:2016-03-18 18:07:14

标签: powershell powershell-v2.0

我使用Win32NetworkAdapterConfiguration获取适配器的IP地址列表:

$ip= $ip=Get-WmiObject Win32_NetworkAdapterConfiguration | 
select IPAddress

IP地址列表如下:

{192.168.1.10, 192.168.1.9, 192.168.1.8.....}

有一种简单的方法可以按升序对此列表进行排序吗? 我需要输出像:

{192.168.1.1, 192.168.1.2, 192.168.1.3.....}

1 个答案:

答案 0 :(得分:1)

这段代码应该可行。您可以按Sort-Object

对对象进行排序
Get-WmiObject Win32_NetworkAdapterConfiguration | Sort-Object IPAddress | select IPAddress

修改

由于您从同一个适配器获取了所有这些IP,因此花括号{}将其转换为一个对象,PowerShell正在努力排序。回到阵列!

$ip = {192.168.1.10, 192.168.1.9, 192.168.1.8, 192.168.1.1}  
$ip =$ip.ToString()
$a= $ip.Split(",")
$a | sort

您必须过滤掉mac地址:创建一个只有ips的新数组:

$new=for ($i=0;$i -lt $array.count;$i+=2) {$a[$i]}

所以,这应该有效:

$ip= $ip=Get-WmiObject Win32_NetworkAdapterConfiguration | select IPAddress
$ip =$ip.ToString()
$a= $ip.Split(",")
$new=for ($i=0;$i -lt $array.count;$i+=2) {$a[$i]}
$new | sort