Powershell
導出到 csv 的 Powershell 管道正在失去數據
我正在嘗試編寫一個腳本,該腳本將從 IP 地址的 .txt 文件中獲取輸入。執行反向 DNS 查找以獲取 IP 地址的主機名,然後將該數據導出到 .csv 文件中。
這是我到目前為止所擁有的。
# getting the IP's from the file $IPADDR = Get-Content "C:\Users\douglasfrancis\Desktop\IP_Test.txt" ForEach ($IPADDR in $IPADDR) { [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR - MemberType NoteProperty -PassThru | select IP, HostName | sort -property Hostname | export- csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv" }
現在創建的 CSV 文件將具有我分配的列標題和列表中的最後一個 IP 地址及其主機名。所以它以某種方式放棄了其他一切。
如果我在 export-csv 註釋掉的情況下執行它,那麼所有 IP 都顯示在控制台中,但不按主機名排序。
我以前使用過同樣的基本管道,沒有任何問題,所以我對這裡發生的事情有點茫然。任何幫助都是極好的。
謝謝,
休息了一下,又回來了。意識到我錯過了什麼,這現在可以正常工作了。
$SortIP =@() ForEach ($IPADDR in $IPADDR) { $SortIP += [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName } $SortIP | sort -property Hostname | export-csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv" -NoTypeInformation
基本上添加了“$SortIP”變數並使用了“+=
$$ System.Net.DNS $$" 而不是 “=$$ System.Net.DNS $$“我之前使用過的,它完全符合我的預期。