estrutura inesperada ao copiar pastas no Windows Powershell
Eu tenho um conjunto de projetos que envolvem uma mistura de arquivos específicos do projeto mais arquivos comuns. Estou tentando copiar o conteúdo de duas pastas diferentes - uma pasta específica do projeto e uma pasta comum - em uma única pasta chamada para o projeto. Também quero manter as hierarquias de pastas das pastas originais.
Por exemplo, alguns caminhos para os arquivos comuns:
src\Common\PackageAssets\logo1.jpg
src\Common\PackageAssets\logo2.jpg
E exemplos de caminhos para arquivos específicos do projeto:
src\Projects\ProjectA\PackageFiles\readme.txt
src\Projects\ProjectA\PackageFiles\scale-100\projA.png
O resultado desejado após a cópia seria:
bld\ProjectA\pkgFiles\logo1.png
bld\ProjectA\pkgFiles\logo2.png
bld\ProjectA\pkgFiles\readme.txt
bld\ProjectA\pkgFiles\scale-100\projA.png
O que estou usando é o seguinte:
[string]$pkgContentPath = "bld\$project\pkg_contents"
# copy common files
Copy-Item -Path .\src\Common\PackageAssets -Recurse -Destination $pkgContentPath
# copy project-specific files
Copy-Item -Path .\src\Projects\ProjectA\PackageFiles\ -Recurse -Destination $pkgContentPath
Mas, em vez dos resultados esperados, todos os arquivos estão terminando em um nível extra de subpasta:
bld\ProjectA\pkgFiles\PackageAssets\logo1.png
bld\ProjectA\pkgFiles\PackageAssets\logo2.png
bld\ProjectA\pkgFiles\PackageFiles\readme.txt
bld\ProjectA\pkgFiles\PackageFiles\scale-100\projA.png
Estou perplexo. Não consigo descobrir como me livrar da camada extra da subpasta. Tentei usar a tubulação Get-ChildItem para Copy-Item, mas as hierarquias das subpastas foram perdidas.
Em um arquivo .bat, isso funciona:
xcopy src\Common\PackageAssets\* bld\%project\pkg_contents /s
xcopy src\Projects\%project\PackageFiles bld\%project\pkg_contents /s
Acho que poderia usar o xcopy, mas certamente deve haver uma maneira de fazer isso usando cmdlets.