2016-08-17 262 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 
} 
相关问题