You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何用Get-ChildItem获取含中间目录的完整文件路径

解决PowerShell提取VPP文件夹文件并保留相对路径的问题

问题分析

你当前脚本的核心问题是:直接输出$child时,PowerShell默认调用对象的ToString()方法,仅返回文件名/文件夹名,而非完整路径。要保留从源目录开始的相对结构,需要利用FileInfo/DirectoryInfo对象的属性来计算相对路径。

修改后的脚本

$sourceDirectory = "F:\OneDrive - University of Edinburgh\PhD\Results\Campaign1_Part4\GustData"
$destDirectory = "C:\Users\Anjali\Desktop\test"    
$keyword = "VPP"

# 获取所有包含VPP路径的文件/文件夹(递归)
$items = Get-ChildItem -Path $sourceDirectory -Recurse | Where-Object {
    $_.FullName -match [regex]::Escape($keyword)
}

foreach ($item in $items) {
    # 计算当前项相对于源目录的相对路径
    $relativePath = $item.FullName.Substring($sourceDirectory.Length + 1)
    # 构造目标路径
    $targetPath = Join-Path -Path $destDirectory -ChildPath $relativePath

    try {
        # 复制文件/文件夹,保留结构
        Copy-Item -Path $item.FullName -Destination $targetPath -Force -Recurse
    }
    catch [System.Exception] {
        Write-Error "复制失败: $($item.FullName) - $($_.Exception.Message)"
    }
}

关键改进点

  • 用FullName获取完整路径:$item.FullName返回文件/文件夹的绝对完整路径,包含所有层级目录。
  • 计算相对路径:通过截取FullName中源目录长度之后的部分,得到从源目录开始的相对路径(如dataset1\folderA\folderB\VPP\file1)。
  • 构造目标路径:用Join-Path拼接目标目录和相对路径,确保复制后保留原有目录结构。
  • 精准匹配VPP:用[regex]::Escape($keyword)避免特殊字符干扰正则匹配,确保只命中包含VPP的路径。

更高效的写法(直接定位VPP文件夹)

如果只需要提取VPP文件夹内的内容,还可以直接先定位所有VPP文件夹,再复制其内容,这样更精准:

$sourceDirectory = "F:\OneDrive - University of Edinburgh\PhD\Results\Campaign1_Part4\GustData"
$destDirectory = "C:\Users\Anjali\Desktop\test"

# 找到所有源目录下的VPP文件夹
$vppFolders = Get-ChildItem -Path $sourceDirectory -Recurse -Directory | Where-Object { $_.Name -eq "VPP" }

foreach ($vppFolder in $vppFolders) {
    # 计算VPP文件夹相对于源目录的相对路径
    $relativeVppPath = $vppFolder.FullName.Substring($sourceDirectory.Length + 1)
    $targetVppPath = Join-Path -Path $destDirectory -ChildPath $relativeVppPath

    # 复制VPP文件夹内的所有内容到目标路径
    Copy-Item -Path "$($vppFolder.FullName)\*" -Destination $targetVppPath -Force -Recurse
}

这种写法直接定位VPP文件夹,避免匹配到名称包含VPP的非目标文件/文件夹,更符合你的需求。


内容的提问来源于stack exchange,提问作者Anjali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:54:58