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

PowerShell:求助实现同名基础名的.txt与.wav文件批量重命名

PowerShell批量重命名.txt与对应.wav文件方案

以下是完善后的PowerShell代码,可实现从.txt文件提取内容作为新名称,同步重命名同基础名的.txt和.wav文件:

# 遍历当前目录下所有.txt文件
Get-ChildItem -Filter *.txt | ForEach-Object {
    # 获取文件基础名(不含扩展名)
    $baseName = $_.BaseName
    # 读取txt文件内容作为新名称,去除首尾空白和换行符
    $newName = (Get-Content $_.FullName -Raw).Trim()
    # 查找对应目录下的同名.wav文件
    $wavFile = Get-ChildItem -Path $_.DirectoryName -Filter "$baseName.wav" -ErrorAction SilentlyContinue

    # 仅当新名称非空时执行重命名
    if (-not [string]::IsNullOrEmpty($newName)) {
        # 重命名当前.txt文件
        Rename-Item -Path $_.FullName -NewName "$newName.txt" -Force
        # 若存在对应.wav文件,同步重命名
        if ($wavFile) {
            Rename-Item -Path $wavFile.FullName -NewName "$newName.wav" -Force
        }
    } else {
        Write-Warning "跳过文件 $($_.Name):读取到的新名称为空"
    }
}

关键逻辑说明

  • 匹配关联文件:通过$_.BaseName获取txt文件的基础名,以此为依据查找同目录下的.wav文件,确保两者一一对应
  • 清理新名称:用Trim()去除txt内容首尾的空格、换行符,避免生成无效文件名
  • 安全校验:先判断新名称非空,防止出现空文件名导致的重命名失败
  • 强制覆盖(可选):-Force参数会覆盖已存在的同名文件,若不需要可删除该参数

注意事项

  • 确保txt文件内容不含Windows文件名非法字符(/ \ : * ? " < > |),否则重命名会失败,可额外添加字符过滤逻辑
  • 如需处理子目录内的文件,给Get-ChildItem添加-Recurse参数
  • 测试阶段可将Rename-Item替换为Write-Host,先预览重命名操作,确认无误后再执行实际重命名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:21:35