2016-08-17 162 views
0

我創建了簡單的PowerShell腳本,以將文件和文件夾從一個位置複製到共享計算機中的多個位置,這項工作很好,但我們必須每次運行一次該腳本週複製並在寫existen內容Powershell複製文件夾和文件,並重新創建父文件夾作爲子文件夾

問題是腳本下一次運行時創建父母相同的父agian的子文件夾內的文件夾爲exampel:

Folder1中複製(下一次腳本運行,或者如果該文件夾存在)這看起來像

Folder1 \ folder1

enter image description here enter image description here

,你可以在圖片看到這個副本正確的文件夾和內容,但如果該文件夾存在,或者這將在同一文件夾中創建新的子文件夾同名

這裏要審查的腳本副本。

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 
} 

我希望有人能幫我解決這個問題。 Regards

回答

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 
} 
相關問題