Powershell を使用しており、既存のコピー先フォルダーの余分なファイルを消去せずにフォルダー/ファイルを強制的にコピーしようとしています。機能するコマンドを取得しようとして立ち往生しています。
以下は私のコードですが、これを修正する方法について何か提案はありますか?
Copy-Item -Force -Recurse –Verbose $releaseDirectory -Destination $sitePath
Powershell を使用しており、既存のコピー先フォルダーの余分なファイルを消去せずにフォルダー/ファイルを強制的にコピーしようとしています。機能するコマンドを取得しようとして立ち往生しています。
以下は私のコードですが、これを修正する方法について何か提案はありますか?
Copy-Item -Force -Recurse –Verbose $releaseDirectory -Destination $sitePath
あなたはそれを確認する必要があります
$realeseDirectory
のようなものです
c:\releasedirectory\*
Copy-item
宛先の余分なファイルやフォルダーを削除することはありませんが-force
、ファイルが既に存在する場合は上書きします
あなたの質問はあまり明確ではありません。そのため、以下の関数を少し調整する必要があるかもしれません。ところで、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