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

如何用PowerShell恢复默认文件名并按创建时间重编号音乐文件

问题背景

在Windows 10系统下需要按文件创建日期为音乐文件重新编号,先后使用两个PowerShell脚本均未达到预期:

  • 第一个脚本未按创建日期排序,执行效果不符合要求:
[ref]$i = 1; gci -file | Rename-Item -NewName {'{0:D} - {1}' -f $i.Value++, $_}
  • 第二个脚本存在语法错误,执行后所有文件名损坏,变为纯数字格式:
$count = 1; Get-ChildItem -File | Sort-Object LastWriteTime | Rename-Item -NewName { '{0:D {1}' -f $script:count++, $_.Extension }

异常文件名效果参考:
异常文件名截图

操作步骤

第一步:恢复原始文件名

优先使用撤销操作恢复:如果执行错误重命名后没有关闭目标文件夹、没有进行其他文件操作,直接在文件夹空白处按Ctrl+Z即可批量撤销重命名,一键恢复所有原始文件名。

如果已经无法通过撤销恢复,可通过文件夹属性中的「以前的版本」功能,选择重命名操作之前的还原点恢复文件名称。

第二步:按创建日期重新编号

原有脚本问题说明

之前两个脚本失效的核心原因:

  • 排序规则错误:第一个脚本默认按文件系统枚举顺序排序,第二个脚本按最后修改时间排序,均未使用创建日期属性
  • 语法错误:第二个脚本的格式化字符串缺失闭合大括号,且未传入原始文件名参数,导致文件名丢失
  • 计数逻辑不稳定:第一个脚本使用ref传值计数,在管道执行中容易出现序号错乱

正确重命名脚本

执行前先打开PowerShell,通过cd 你的音乐文件夹路径命令进入目标音乐目录,先执行预览版脚本确认效果:

$count = 1
# 筛选常见音乐格式,可自行增删扩展名列表
Get-ChildItem -File | Where-Object { $_.Extension -in '.mp3','.flac','.wav','.m4a','.ape' } |
  Sort-Object CreationTime -Descending |
  Rename-Item -NewName { '{0} - {1}' -f $script:count++, $_.Name } -WhatIf

执行后PowerShell会列出所有待执行的重命名操作,确认序号规则(最新创建的文件序号为1)、文件名拼接规则(序号 - 原始文件名)符合预期后,删除脚本末尾的-WhatIf参数重新执行,即可完成批量重命名,最终效果为最新的song1.mp3会被重命名为1 - song1.mp3。

内容的提问来源于stack exchange,提问作者M.Barandov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:21:23