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

多子目录TXT文件提取路径后缀的PowerShell脚本问题

解决递归处理多TXT文件提取路径最后段的PowerShell脚本改进方案

以下是针对你的需求优化后的PowerShell脚本,能递归处理所有子目录下的TXT文件,按要求格式输出结果:

# 替换为你的目标根目录路径
$rootDir = "C:\Your\Target\Directory"

Get-ChildItem -Path $rootDir -Filter *.txt -Recurse | ForEach-Object {
    $fullFilePath = $_.FullName
    $fileName = $_.Name
    # 逐行读取当前文件内容
    Get-Content -Path $fullFilePath | ForEach-Object {
        # 跳过空行或空白行
        if (-not [string]::IsNullOrWhiteSpace($_)) {
            # 提取路径最后一个\后的内容
            $targetContent = Split-Path -Path $_ -Leaf
            # 按指定格式输出
            "$targetContent $fileName $fullFilePath"
        }
    }
}

关键部分说明

  • Get-ChildItem -Recurse:递归遍历指定根目录下所有.txt文件,确保不会遗漏子目录中的文件。
  • 双层ForEach-Object:外层循环处理每个文件,内层循环处理文件中的每一行,这是解决你之前递归失效的核心——确保每个文件的每一行都被单独处理。
  • Split-Path -Leaf:PowerShell内置的路径处理命令,能可靠提取路径的最后一段(即最后一个\后面的内容),比手动写正则表达式更稳定,还能兼容不同格式的路径输入。
  • 空行过滤:通过[string]::IsNullOrWhiteSpace跳过无内容的行,避免输出无效结果。

可选扩展

如果需要将结果保存到文件,只需在脚本末尾添加输出重定向:

| Out-File -FilePath "提取结果.txt" -Encoding UTF8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:42:47