У меня было непросто время с этим, но я пытаюсь сделать сравнение между двумя серверами и сравнить их файлы с одного сервера на другой. Даже внутри подпапок. До сих пор мне приходилось сравнивать имена папок и файлы, но не могу заставить их заходить в папки и сравнивать содержимое. Вот несколько вещей, которые я пробовал.Сравните каталог с подпапками
$A = Get-ChildItem -Recurse -path $Path
$B = Get-ChildItem -Recurse -path $PAth1
Compare-Object -ReferenceObject $A -DifferenceObject $B -PassThru
Это то, с чего я начал, и он работает лучше всего, но по-прежнему не входит в подпапки. Я также пытался использовать инструкции foreach с массивами для хранения содержимого в массиве и сравнения массивов, но это, похоже, не работает вообще.
$FileDirectoryA = "Path"
$FileDirectoryC = "path"
$A = foreach($folderA in Get-ChildItem $fileDirectoryA)
{
$FolderA
}
$B = foreach($FileA in Get-ChildItem $ArrayA)
{
$FileA
}
$C = foreach($folderC in Get-ChildItem $fileDirectoryC)
{
$FolderC
}
$D = foreach($FileC in Get-ChildItem $ArrayC)
{
$FileC
}
Compare-Object $B $D
Когда я пытаюсь просто сделать
Compare-Object $Path $Path2
It ошибки на всех папках, говоря о запрете доступа, которая не имеет большого смысла для меня.
Спасибо, Andrew
Когда я это делаю, он читает все в файлах и говорит, что у всех есть отличия, когда только несколько файлов действительно имеют отличия. – Andrew
это будет работать, только если вы сравниваете каталоги с одним и тем же корнем (т.е. c: \ temp on как локальный, так и удаленный сервер), в противном случае полное имя будет отличаться. –
Ну, я сравниваю сервер с сервером, а не локальным. – Andrew