24 lines
754 B
PowerShell
24 lines
754 B
PowerShell
|
|
function Copy-Recurse {
|
||
|
|
param(
|
||
|
|
[string]$Path,
|
||
|
|
[string]$Destination,
|
||
|
|
[string]$Filter
|
||
|
|
)
|
||
|
|
|
||
|
|
New-Item -ItemType Directory -Force -Path $Destination | Out-Null
|
||
|
|
|
||
|
|
Get-ChildItem -Recurse -Path $Path -Filter $Filter | ForEach-Object {
|
||
|
|
$relativePath = $_.FullName.Replace((Resolve-Path $Path).Path, "")
|
||
|
|
$targetFile = Join-Path -Path $Destination -ChildPath $relativePath
|
||
|
|
|
||
|
|
$targetFileDirectory = Split-Path -Path $targetFile -Parent
|
||
|
|
|
||
|
|
if (!(Test-Path $targetFileDirectory))
|
||
|
|
{
|
||
|
|
New-Item -ItemType Directory -Force -Path $targetFileDirectory | Out-Null
|
||
|
|
}
|
||
|
|
|
||
|
|
Copy-Item -Path $_.FullName -Destination $targetFile -Force
|
||
|
|
}
|
||
|
|
}
|