在输出文件中,我希望使用共享文件对其进行格式化,如下所示,它与扩展名,当前IP和已更正的IP一起出错。 "共享文件1","扩展","服务器IP","正确IP"其中当前IP是与共享文件匹配的IP,而正确的IP是导出文件中列出的IP。
以下示例数据。
我的出口:
"1000","1608","IP_Phone","1.330D","192.168.1.20","6","","192.1.1.10" "1005","1608","IP_Phone","1.330D","192.168.1.70","6","","192.1.1.11" "1010","1608","IP_Phone","1.330D","192.168.1.100","6","","192.1.1.10" "1080","1608","IP_Phone","1.330D","192.168.1.51","6","","192.1.1.13"
分享1档案:
1000, 192.168.1.2, TRUE ;Test1 1011, 192.168.1.5, TRUE ;Test2 1005, 192.168.1.100, TRUE ;Test3 1079, 192.168.1.50, TRUE ;Test4
分享2档案:
1010, 192.168.1.100, TRUE ;Test5 1020, 192.168.1.5, TRUE ;Test6 1005, 192.168.1.70, TRUE ;Test7 1080, 192.168.1.52, TRUE ;Test8
所需的输出文件:
Share File, Extension, Server IP, Correct IP Share File 1, 1000, 192.168.1.2, 192.168.1.20 Share File 1, 1005, 192.168.1.100, 192.168.1.70 Share File 2, 1080, 192.168.1.52, 192.168.1.51
我到目前为止:
Clear-Host
$ASAExport = (Import-Csv "C:\app\test\ASAExportNoHeaders.txt" -Header "Extension","2","3","4","Correct IP","6","7","8")
$1 = (Import-Csv "C:\app\test\StationsTest1.txt" -Header "Extension","Server IP","Comment")
$2 = (Import-Csv "C:\app\test\StationsTest2.txt" -Header "Extension","Server IP","Comment")
#$Output = "C:\app\test\Output.txt"
#if (Test-Path($Output)) {Remove-Item $Output}
$ServerList = $1,$2
foreach ($Server in $ServerList) {
foreach ($ASARow in $ASAExport) {
foreach ($ServerRow in $Server) {
if ($ASARow."Extension" -in $ServerRow."Extension") {
if ($ASARow."Correct IP" -ne $ServerRow."Server IP") {
New-Object PSCustomObject -Property @{
"Extension" = $ASARow."Extension"
"Correct IP" = $ASARow."Correct IP"
"Server IP" = $ServerRow."Server IP"
} | Select-Object "Extension","Server IP","Correct IP"
}
}
}
}
}
我得到的结果是你所期望的。我得到Ext,Server IP和Correct IP。我需要添加找到的服务器并将其添加到Select-Object
。有什么想法吗?
答案 0 :(得分:1)
添加一个Share File
列,其值分别为$1
和$2
:
$headers = 'Extension', 'Server IP', 'Comment'
$1 = Import-Csv "C:\app\test\StationsTest1.txt" -Header $headers |
Select-Object *, @{n='Share File';e={'Share File 1'}}
$2 = Import-Csv "C:\app\test\StationsTest2.txt" -Header $headers |
Select-Object *, @{n='Share File';e={'Share File 2'}}
并将其放入结果中:
New-Object PSCustomObject -Property @{
'Extension' = $ASARow.Extension
'Correct IP' = $ASARow.'Correct IP'
'Server IP' = $ServerRow.'Server IP'
'Share File' = $ServerRow.'Share File'
}
Select-Object
BTW之后你不需要New-Object
。新对象只包含您指定的属性。