2012-03-19 3 views
0

다시 여기에서 루키가 PowerShell로 어려움을 겪고 있습니다.PowerShell을 사용하여 폴더를 비교하고 델타 내용을 세 번째 폴더에 작성

저는 서로 데이터를 비교해야하는 두 개의 폴더 인 DirA와 DirB가 있습니다. DirA (폴더 또는 데이터 추가/제거)에 대한 모든 변경 사항은 Delta 폴더에 복사해야합니다. 델타 폴더는 내용을 DirB로 복사합니다. DirB가있는 연결이 끊어진 네트워크에 데이터를 업로드하려면이 작업을 수행해야합니다. 내 문제는 데이터가 델타 및 델타에서 DirB로 안정적으로 복사되지 않는 것입니다. 동기화해야하는 데이터는 몇 GB의

입니다. 여기 내 코드입니다. 도움이나 올바른 방향으로 움직이는 것이 좋습니다!

추신 : 나는 Comparing folders and content with 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

전체 소스 코드가 포함 된 최종 솔루션? – Kiquenet

답변

0

이 나는 ​​파워 쉘의 파이프 라인 개념에 반하는 알고 있지만, 복잡한 파이프 라인을 구축 할 때, 나는 각 단계는 내가 무엇을 기대하지 있는지 확인 intramediary 객체를 사용합니다.

일단 제대로 작동하면 일반 파이프 라이닝으로 다시 변환 할 수 있습니다.

관련 문제