7

Powershell を使用しており、既存のコピー先フォルダーの余分なファイルを消去せずにフォルダー/ファイルを強制的にコピーしようとしています。機能するコマンドを取得しようとして立ち往生しています。

以下は私のコードですが、これを修正する方法について何か提案はありますか?

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

2 に答える 2

6

あなたはそれを確認する必要があります

$realeseDirectory 

のようなものです

c:\releasedirectory\*

Copy-item宛先の余分なファイルやフォルダーを削除することはありませんが-force、ファイルが既に存在する場合は上書きします

于 2013-02-11T19:29:11.287 に答える
1

あなたの質問はあまり明確ではありません。そのため、以下の関数を少し調整する必要があるかもしれません。ところで、Web サイトを展開しようとしている場合、ディレクトリをコピーするのは最善の方法ではありません。

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
于 2013-02-11T19:47:49.317 に答える