Для сравнения, если вы экспортировали файлы reg, вы можете сделать:
$location1 = "C:\temp\location1";
$location2 = "C:\temp\location2";
$location3 = "C:\temp";
Compare-Object $(Get-Content "$location1\file1.reg") $(Get-Content "$location2\file2.reg") |
Where-Object { IsNotAccepted($_.InputObject) } |
Out-File "$location3\NotAcceptedEntries.txt" -Force
function IsNotAccepted($entry){
$accepted = $false;
# $name = $entry.Split('=')[0]
# $value = $entry.Split('=')[1]
# Put your logics here
return -Not($accepted);
}
Обратите внимание, что $_.InputObject
представляет запись, например,
"C: \ ProgramФайлы (x86) \ 7-Zip \ 7z.exe.FriendlyAppName "=" 7-Zip Console 2 "
Вы также можете узнать, в каком файле это было, отметив $_.SideIndicator
.Если он возвращает =>
, это означает, что правильный файл (file2.reg) имеет эту разницу.И наоборот <=
означает, что разница была найдена в левом файле (file1.reg).