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

PowerShell根据txt文件名清单精准匹配获取flac文件完整路径

问题背景
  • 需求为读取txt文件内的音乐条目,每行格式固定为歌手 - 歌曲名 - 专辑名,示例条目:

Linkin Park - What I've Done - Minutes to Midnight
Red Hot Chili Peppers - Can't Stop - By the Way (Deluxe Edition)

  • 目标是匹配本地音乐库中对应音频的完整路径,预期路径格式示例:

C:\Music\Red Hot Chili Peppers\By the Way (Deluxe Edition)\Can’t Stop.flac
C:\Music\Linkin Park\Minutes to Midnight\What I’ve Done.flac

  • 最终将所有匹配到的精准路径写入m3u8格式播放清单。
原有脚本故障原因

原脚本运行时输出大量无关文件路径,核心问题有两点:

  • 未拆分每行条目的歌手、歌曲名、专辑名字段,直接将整行文本作为文件过滤前缀,完全不符合实际文件存储的路径结构,触发大量误匹配
  • 未限制Get-ChildItem仅返回文件类型,也未做文件名、目录名的精准校验,递归遍历过程中会将所有名称沾边的内容全部写入清单。
修复后可直接运行的脚本
# 路径配置项,可根据实际存储位置修改
$Trackpath = "C:\Users\J-PLEX SERVER\Documents\My scripts\Qobuz Downloader\tracks.txt"
$Musicpath = "F:\Music Masters"
$Playlistpath = "C:\Users\J PLEXSERVER\Documents\My scripts\Qobuz Downloader\Playlist.m3u8"

# 清空历史播放列表内容,避免重复写入
if (Test-Path $Playlistpath) {
    Remove-Item $Playlistpath -Force
}

# 逐行读取曲目列表文件
foreach($line in [System.IO.File]::ReadLines($Trackpath)) {
    # 自动跳过空行
    if ([string]::IsNullOrWhiteSpace($line)) {
        continue
    }

    # 按「 - 」分隔符拆分三个字段,自动去除字段前后多余空格
    $trackFields = $line -split '\s-\s'
    if ($trackFields.Count -ne 3) {
        Write-Warning "条目格式不符合规范,已跳过:$line"
        continue
    }
    $artist = $trackFields[0].Trim()
    $trackName = $trackFields[1].Trim()
    $albumName = $trackFields[2].Trim()

    # 三层校验精准匹配目标文件
    Get-ChildItem -Path $Musicpath -Recurse -File -Filter "*.flac" | Where-Object {
        $_.Name -eq "$trackName.flac" -and
        $_.Directory.Name -eq $albumName -and
        $_.Directory.Parent.Name -eq $artist
    } | Select-Object -ExpandProperty FullName | Add-Content -Path $Playlistpath -Force
}
使用说明
  • 脚本运行前会自动清空旧播放列表内容,避免多次运行产生重复条目
  • 自动识别txt中的空行、格式错误行,输出警告后跳过,不会中断整体执行
  • 匹配逻辑严格对齐给出的路径结构:音乐库根目录\歌手名\专辑名\歌曲名.flac,三层字段完全匹配才会写入清单,不会出现无关文件路径
  • 如果需要匹配mp3、wav等其他格式音频,只需修改-Filter "*.flac"和$_.Name -eq "$trackName.flac"两处的文件后缀即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:15:52