У меня есть текстовый файл, который содержит много IP-адресов, и я хотел бы сравнить его с HTML-файлом.
У меня есть несколько сценариев в Powershell, но вывод не содержит точно IP, а IP начинается с последнего октета.
$file1 = Get-Content H:\Downloads\hnames.txt
$file2 = Get-Content H:\Downloads\cpdb2web_B976151009_1\Outputs\test.html
$result = "H:\Downloads\names.txt"
$file1 | foreach {
$match = $file2 -match $_
if ( $match ) {
$match | Out-File -Force $result -Append
}
}
hnames.txt (образец текстового файла)
10.66.94.16
output.txt
<a href="#network_object_Net_10.66.94.16_n28">Net_10.66.94.16_n28</a>
<a href="#network_object_Net_10.66.94.16_n28">Net_10.66.94.16_n28</a>
<td vAlign="top"><a name="network_object_Net_10.66.94.16_n28">Net_10.66.94.16_n28</a></td><td vAlign="top">
</td><td vAlign="top">10.66.94.16<br>
</td><td vAlign="top">10.66.94.168<br>
</td><td vAlign="top">10.66.94.162<br>
</td><td vAlign="top">10.66.94.164<br>
Я попробовал другой скрипт, но он тоже не работает,
$File1 = Get-Content H:\Downloads\hnames.txt
$File2 = Get-Content H:\Downloads\cpdb2web_B976151009_1\Outputs\test.html
$RegEx = "("
ForEach ($Line in $File1){
$RegEx += "$Line|"
}
$RegEx = [regex]"$($RegEx.SubString(0,($RegEx.Length - 1))))" #trim the last | out, we don't need it
$Search = $File2 | Select-String -Pattern $RegEx -AllMatches
ForEach($Match in $Search.Matches){
Write-Output "$($Match.Value) was found in firewall"
}