В выходном файле я бы хотел, чтобы он был отформатирован вместе с файлом Share, а также с расширением, текущим IP-адресом и исправленным IP-адресом, как показано ниже. «Share File 1», «Extension», «Server IP», «Correct IP», где текущий IP-адрес совпадает с файлом Share и правильным IP-адресом, указанным в файле экспорта.Как определить, какой список в цикле foreach
Примеры данных ниже.
Мой Экспорт:
"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"
Share 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
Share 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, IP-адрес сервера и правильный IP-адрес. Мне нужно добавить сервер, в котором он был найден, и добавить его в Select-Object
. Есть предположения?
Отлично, что сделал трюк, однако колонны все не в порядке, мы можем указать заказ? Share File, Extension, IP-адрес сервера, правильный IP-адрес? Я написал это так, но выход не подходит. –
Не обращайте внимания на то, где этот последний объект выбора входит, чтобы определить порядок столбцов. Еще раз спасибо, это здорово. –
Вы можете заранее определить порядок свойств, создав упорядоченную хеш-таблицу. Это требует двух шагов: '$ props = [ordered] @ {...}; New-Object -Type PSCustomObject -Property $ props' –