我有一个文件夹,里面全是录音,内容都是:“ rec.(unixtime).mp3 ”
例如:“rec.1447666687584.mp3”理想情况下会变成“10-16-2015_01-38-07.mp3”
我需要定期转换这些文件名,因此我认为编写 bat 文件是执行此操作的最佳方法。
删除前三个字符似乎很容易,如这里所示如何删除文件夹中所有文件名的第一个字符?
并且从纪元到天数的转换数学似乎也很简单((((epochtimevalue/1000)/60)/60)/24) + 日期 1/1/1970。
有没有人有一个简单的解决方案来转换这样的文件名?
答案1
我的JREN.BAT 正则表达式重命名实用程序jren /?
非常适合解决此问题。它是纯脚本(混合 JScript/批处理),可在 XP 及以上版本的任何 Windows 机器上本地运行。完整文档内置于脚本中,可通过执行(或如果您需要分页帮助)获得jren /??
。
JREN.BAT 允许您使用正则表达式匹配和重命名文件,替换字符串可以是 JScript 表达式。该实用程序内置了复杂的时间戳格式化功能,使这项工作变得非常简单。
以下一行代码将当前目录中的所有“rec.EpochTime.mp3”文件重命名为
“MM-DD-YYYY_hh-mm-ss.mp3”格式。它将使用您的本地时区转换纪元时间。还有其他选项允许您为输出指定特定时区。
jren "^rec\.(\d+)\.mp3$" "ts({dt:$1,fmt:'{mm}-{dd}-{yyyy}_{hh}-{nn}-{ss}.mp3'})" /j
但我强烈建议您将日期格式从 MM-DD-YYYY 改为 YYYY-MM-DD。这样您就可以轻松地按时间顺序对目录列表进行排序。该{iso-dt}
格式是 的简写{yyyy}-{mm}-{dd}
。
jren "^rec\.(\d+)\.mp3$" "ts({dt:$1,fmt:'{iso-dt}_{hh}-{nn}-{ss}.mp3'})" /j
鉴于 JREN 本身是一个批处理脚本,如果将命令放在另一个批处理脚本中,则应该使用 CALL JREN。