Powershell复制文件夹和文件,并将父文件夹重新创建为子文件夹

时间:2016-08-17 11:43:25

标签: powershell copy

我创建了简单的powershell脚本,用于将文件和文件夹从一个位置复制到共享计算机中的多个位置,这项工作正常,但我们必须每周运行一次此脚本来复制和覆盖写入内容

问题是下次运行的脚本在同一父agian内创建父文件夹作为例子的子文件夹:

复制了Folder1(下次运行脚本或文件夹存在时),这看起来像

Folder1中\文件夹1

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
}

我希望有人可以帮我解决这个问题。 此致

1 个答案:

答案 0 :(得分: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
}