gpt4 book ai didi

scripting - 在Powershell中,将两个表合并为一个的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 14:45:11 24 4
gpt4 key购买 nike

我对Powershell相当陌生,想知道是否有人知道有更好的方法来解决以下示例问题。

我有一系列从IP地址到主机名的映射。这表示 Activity 的DHCP租用列表:

PS H:\> $leases

IP Name
-- ----
192.168.1.1 Apple
192.168.1.2 Pear
192.168.1.3 Banana
192.168.1.99 FishyPC

我还有从MAC地址到IP地址的另一组映射。这代表IP保留列表:
PS H:\> $reservations

IP MAC
-- ---
192.168.1.1 001D606839C2
192.168.1.2 00E018782BE1
192.168.1.3 0022192AF09C
192.168.1.4 0013D4352A0D

为了方便起见,我能够使用以下代码生成从MAC地址到IP地址和主机名的第三组映射。这个想法是 $reservations应该获得第三个字段“Name”,只要有匹配的“IP”字段,就会填充该字段:
$reservations = $reservations | foreach {
$res = $_
$match = $leases | where {$_.IP -eq $res.IP} | select -unique
if ($match -ne $NULL) {
"" | select @{n="IP";e={$res.IP}}, @{n="MAC";e={$res.MAC}}, @{n="Name";e={$match.Name}}
}
}

所需的输出是这样的:
PS H:\> $ideal

IP MAC Name
-- --- ----
192.168.1.1 001D606839C2 Apple
192.168.1.2 00E018782BE1 Pear
192.168.1.3 0022192AF09C Banana
192.168.1.4 0013D4352A0D

有什么更好的方法吗?

最佳答案

李·福尔摩斯(Lee Holmes)编写了一个blog post on a Join-Object function,可以满足您的需求。不幸的是,PowerShell还没有内置该功能。

关于scripting - 在Powershell中,将两个表合并为一个的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1848821/

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