使用Powershell我想强制复制文件夹/文件而不删除现有目标文件夹中的额外文件:

时间:2013-02-11 19:15:14

标签: powershell

我正在使用Powershell并尝试强制复制文件夹/文件而不删除现有目标文件夹中的任何额外文件。我被困在试图获得工作指令。

以下是我的代码,有关如何解决此问题的任何建议吗?

Copy-Item -Force -Recurse  –Verbose $releaseDirectory -Destination $sitePath 

2 个答案:

答案 0 :(得分:3)

你需要确定

$realeseDirectory 

就像是

c:\releasedirectory\*

Copy-item永远不会删除目标中的额外文件或文件夹,但如果文件已存在则会-force ower写

答案 1 :(得分:1)

你的问题不是很清楚。所以,您可能需要稍微调整一下这个功能。顺便说一句,如果您尝试部署网站,复制目录不是最佳方式。

function Copy-Directory
{
    param (
        [parameter(Mandatory = $true)] [string] $source,
        [parameter(Mandatory = $true)] [string] $destination        
    )

    try
    {
        Get-ChildItem -Path $source -Recurse -Force |
            Where-Object { $_.psIsContainer } |
            ForEach-Object { $_.FullName -replace [regex]::Escape($source), $destination } |
            ForEach-Object { $null = New-Item -ItemType Container -Path $_ }

        Get-ChildItem -Path $source -Recurse -Force |
            Where-Object { -not $_.psIsContainer } |
            Copy-Item -Force -Destination { $_.FullName -replace [regex]::Escape($source), $destination }
    }

    catch
    {
        Write-Error "$($MyInvocation.InvocationName): $_"
    }
}

$releaseDirectory = $BuildFilePath + $ProjectName + "\" + $ProjectName + "\bin\" + $compileMode + "_PublishedWebsites\" + $ProjectName
$sitePath = "\\$strSvr\c$\Shared\WebSites" 

Copy-Directory $releaseDirectory $sitePath