如何使用PowerShell复制含动态父目录的指定子文件夹到目标路径
PowerShell 动态路径下文件夹复制方案
单匹配场景通用命令
如果D:\TestFolder下仅有一个符合*\TestSubFolder1\TestSubFolder2结构的路径,直接使用通配符匹配动态文件夹名即可:
Copy-Item -Path "D:\TestFolder\*\TestSubFolder1\TestSubFolder2" -Destination "D:\TestFolder" -Recurse -Force
参数说明:
- 路径中的
*为通配符,可匹配D:\TestFolder下任意名称的第一层子目录,兼容动态变更的构建文件夹名 -Recurse参数可连带复制TestSubFolder2内部所有文件、子目录-Force参数可自动覆盖目标路径下的同名文件/目录,避免复制中断
多匹配场景兼容命令
如果D:\TestFolder下存在多个历史构建生成的动态文件夹,可优先匹配最新生成的目录下的目标路径,避免匹配错误:
# 定位最新构建目录下的TestSubFolder2路径 $targetSource = Get-ChildItem -Path "D:\TestFolder" -Directory | Sort-Object LastWriteTime -Descending | ForEach-Object { Join-Path $_.FullName "TestSubFolder1\TestSubFolder2" } | Where-Object { Test-Path $_ -PathType Container } | Select-Object -First 1 # 存在匹配路径时执行复制 if ($targetSource) { Copy-Item -Path $targetSource -Destination "D:\TestFolder" -Recurse -Force }
内容的提问来源于stack exchange,提问作者BJ1
相关产品推荐
相关产品推荐

