我是一名有用的助手,可以为您翻译文本。
我有一组项目,涉及特定于项目的文件和公共文件的混合。我试图将来自两个不同文件夹(一个特定于项目的文件夹和一个公共文件夹)的内容复制到以项目命名的单个文件夹中。我还希望保留原始文件夹中的任何文件夹层次结构。
例如,某些通用文件的路径:
复制后期望的结果是:
我使用的是这个:
但是,与预期结果不同的是,所有文件都最终出现在额外的一个子文件夹级别中:
我有一组项目,涉及特定于项目的文件和公共文件的混合。我试图将来自两个不同文件夹(一个特定于项目的文件夹和一个公共文件夹)的内容复制到以项目命名的单个文件夹中。我还希望保留原始文件夹中的任何文件夹层次结构。
例如,某些通用文件的路径:
src\Common\PackageAssets\logo1.jpg
src\Common\PackageAssets\logo2.jpg
以下是指向项目特定文件的示例路径:
src\Projects\ProjectA\PackageFiles\readme.txt
src\Projects\ProjectA\PackageFiles\scale-100\projA.png
复制后期望的结果是:
bld\ProjectA\pkgFiles\logo1.png
bld\ProjectA\pkgFiles\logo2.png
bld\ProjectA\pkgFiles\readme.txt
bld\ProjectA\pkgFiles\scale-100\projA.png
我使用的是这个:
我正在使用这个:
[string]$pkgContentPath = "bld\$project\pkgFiles"
# 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
但是,与预期结果不同的是,所有文件都最终出现在额外的一个子文件夹级别中:
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
我被难住了。我无法弄清楚如何去掉额外的子文件夹层。我尝试使用Get-ChildItem管道到Copy-Item,但是子文件夹层次结构会丢失。
在.bat文件中,这个命令可以运行:
xcopy src\Common\PackageAssets\* bld\%project\pkg_contents /s
xcopy src\Projects\%project\PackageFiles bld\%project\pkg_contents /s
我想我可以使用xcopy,但肯定有一种使用cmdlets来完成这个任务的方法。
New-Item bld\ProjectA\pkgFiles -Type Directory; Copy-Item -Path .\src\Common\PackageFile\* bld\ProjectA\pkgFiles -Recurse; Copy-Item -Path .\src\Projects\ProjectA\PackageFiles\* bld\ProjectA\pkgFiles -Recurse
- user4003407