2016-08-17 3 views
0

공유 컴퓨터의 한 위치에서 여러 위치로 파일과 폴더를 복사하는 간단한 powershell 스크립트를 만들었습니다.이 작업은 좋지만이 스크립트는 매번 실행해야합니다 주 복사 쓰기 existen의 콘텐츠를합니다Powershell은 폴더와 파일을 복사하고 상위 폴더를 하위 폴더로 다시 만듭니다

문제는 스크립트 다음에 실행은 부모가 exampel에 대한 하위 폴더와 동일한 상위 agian 내부에 폴더를 만들 수 있습니다 : 폴더가 존재하는 경우

폴더 1 복사 (다음에 스크립트 실행 또는)이 모양은

Folder1 \ folder1

enter image description here enter image description here

당신은 사진에서 제대로이 사본 폴더 및 콘텐츠하지만 폴더가 존재하거나 같은 이름으로 같은 폴더에 새 하위 폴더를 생성 할 경우 다음

이를 볼 수 reviewd의 스크립트 사본.

Clear-Host 
#source path 
$sourceDir = '\\source\Users\asdew\Desktop\dep' 

#Array with Sites Path 
$targetDir = @(

       #Sites in pc1 
       '\\Apc20\Users\afded\Desktop\site01', 

       #Sites in pc2 

       '\\Apc10\Users\adsed\Desktop\site02' 

       ) 

$i=0 

Foreach ($dest in $targetDir){ 

Get-ChildItem $sourceDir -Recurse | % { 

    $dest = $targetDir[$i] + $_.FullName.SubString($sourceDir.Length) 

    If (!($dest.Contains('.')) -and !(Test-Path $dest)) 

    { 
     mkdir $dest 
    } 



     #Copy Files and over write existen files. 
    Write-Host "copy start. Please wait..We are copying your files.." -ForegroundColor DarkYellow 

    Copy-Item $_.FullName -Destination $dest -Force -PassThru -ErrorAction SilentlyContinue 

    If(-not $?) 

    {Write-Warning "Your copy Failed!!" -InformationAction} 

    else 
    {Write-Host "Your copy was Success!" -ForegroundColor Green} 


    } 

    $i = $i+1 
} 

이 문제를 해결하는 데 도움이되기를 바랍니다. 감사합니다

답변

0

나는 Copy-Item이 모든 작업을 수행해야한다고 생각합니다. 다음 코드를 사용해보십시오.

Clear-Host 
#source path 
$sourceDir = '\\source\Users\asdew\Desktop\dep' 
#Array with Sites Path 
$targetDir = @(

      #Sites in pc1 
      '\\Apc20\Users\afded\Desktop\site01', 

      #Sites in pc2 

      '\\Apc10\Users\adsed\Desktop\site02' 

      ) 


Foreach ($dest in $targetDir){ 
    Get-ChildItem $sourceDir | Copy-Item -Recurse -Destination $dest -ErrorAction Continue -Force 
} 
관련 문제