Сравнение папок и запись дельта-контента в третью папку с помощью PowerShell - PullRequest
0 голосов
/ 19 марта 2012

Снова привет, новичок, борющийся с PowerShell.

У меня есть две папки данных, которые нужно сравнивать друг с другом: DirA и DirB. Все изменения, которые вносятся в DirA (добавление / удаление папок или данных), должны быть скопированы в папку Delta. Папка Delta копирует содержимое, затем в DirB. Мне нужно сделать это, чтобы загрузить данные в отключенную сеть, где находится DirB. Моя проблема в том, что данные, похоже, не надежно копируются в Delta и из Delta в DirB. Данные, которые должны быть синхронизированы, составляют несколько ГБ

Вот мой код. Любая помощь или движение в правильном направлении приветствуется!

PS: я видел пример на Сравнение папок и контента с PowerShell , но когда я запускаю свой код, я вижу много ошибок времени выполнения. Я не могу держать его там, где он идет не так.

<# This script is being used to track changes between DirA and DirB. Changes will be copied to Delta folder and from here copied backwards to DirB to be in sync with DirA. Delta folder will be copied to an USB drive to be connected in disconnected network
#>


$src  = Get-ChildItem -Path "C:\DirA\" -Recurse 
$dst  = Get-ChildItem -Path "D:\DirB" -Recurse

Do a compare of scr and dst and copy the changes to the folder D:\Delta Compare-Object -ReferenceObject $src -DifferenceObject $dst
-Property Name, Length  | Where-Object {$_.SideIndicator -eq "<="} | ForEach-Object {
        Copy-Item C:\DirA\$($_.name) -Destination "D:\Delta\WsusContent" -Recurse -force
        }       

Copy-Item D:\Delta\* D:\DirB\ -Recurse -Force

1 Ответ

0 голосов
/ 21 марта 2012

Я знаю, что это идет вразрез с концепцией конвейера powershell, но при построении сложного конвейера я буду использовать объекты-посредники, чтобы убедиться, что каждый этап выполняет то, что я ожидаю.

Как только он заработает, вы можетепреобразовать обратно в типичную конвейерную обработку ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...