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

PowerShell脚本需求:筛选含文件目录、提取文件名并合并输出

PowerShell 脚本实现方案

直接上可运行的脚本,完全匹配你的需求:

# 定义可配置参数:目标根路径、要筛选的文件扩展名、输出文件路径(可选)
param(
    [string]$RootPath = "C:\Users\UserName\Desktop\Script\Main Folder",
    [string[]]$TargetExtensions = @(".txt", ".jpg"),
    [string]$OutputFile
)

# 递归筛选包含目标文件的子目录
$targetDirs = Get-ChildItem -Path $RootPath -Directory -Recurse | Where-Object {
    # 只检查当前目录下是否存在指定类型的文件,不递归子目录
    (Get-ChildItem -Path $_.FullName -File | Where-Object { $TargetExtensions -contains $_.Extension }).Count -gt 0
}

# 整理输出内容
$outputLines = @()
foreach ($dir in $targetDirs) {
    # 替换路径前缀为...,用Escape避免正则特殊字符干扰
    $shortDir = $dir.FullName -replace [regex]::Escape("C:\Users\UserName\Desktop"), "..."
    # 提取当前目录下的目标文件名(不带路径)
    $files = Get-ChildItem -Path $dir.FullName -File | Where-Object {
        $TargetExtensions -contains $_.Extension
    } | Select-Object -ExpandProperty Name

    # 按要求拼接格式:目录行 → 空行 → 文件名 → 组间空行
    $outputLines += $shortDir
    $outputLines += ""
    $outputLines += $files
    $outputLines += ""
}

# 移除最后一行多余的空行
if ($outputLines[-1] -eq "") {
    $outputLines = $outputLines[0..($outputLines.Count-2)]
}

# 输出到控制台+可选文件
$outputLines | ForEach-Object { Write-Host $_ }
if ($OutputFile) {
    $outputLines | Out-File -Path $OutputFile -Encoding UTF8
}

功能细节说明

  • 目录筛选:递归遍历所有子目录,只保留包含.txt/.jpg(可自定义)文件的目录,避免空目录或不符合要求的目录混入
  • 路径简化:用正则转义处理路径前缀,确保替换准确,不会因为路径里的特殊字符出错
  • 文件名提取:直接获取文件的Name属性,自动去掉路径部分
  • 格式控制:严格按照“目录行后空行、不同目录组间空行”的要求排版,最后自动清理多余空行
  • 输出灵活:默认在控制台打印结果,也可以通过-OutputFile参数指定输出到文本文件

使用示例

  • 默认参数运行:
    .\YourScriptName.ps1
    
  • 自定义扩展名和输出文件:
    .\YourScriptName.ps1 -TargetExtensions @(".txt", ".png", ".gif") -OutputFile "D:\result.txt"
    

输出效果示例

...\Script\Main Folder\Travel Photos

beach.jpg
travel_note.txt

...\Script\Main Folder\Work Docs

meeting_notes.txt
project_chart.jpg

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:40:34