![使用脚本更改文件名的日期方案](https://linux22.com/image/1382011/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%E6%9B%B4%E6%94%B9%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%E6%97%A5%E6%9C%9F%E6%96%B9%E6%A1%88.png)
我在服务器上保存了大约 8 年的视频文件,用于工作。为了便于组织,我们想将文件的日期格式从 MMDDYY 改为 YYMMDD。文件名结构为 MMDDYY_Filename.xxx。最好的方法是什么?我正在考虑使用自动程序/applescript 工作流程重新排列文件名的前 6 个字符,以使其正常工作,但我不知道如何实现。有什么想法吗?
答案1
在我看来,最简单的方法是使用 Automator(带有 Applescript)去掉前 6 个或 8 个字符(取决于您现有的日期格式:“131016”或“20131016”)...然后运行重命名 Finder 项目工作流程,如下所示:
Automator 工作流程:
(运行 Applescript)
运行 {输入,参数}
tell application "Finder"
repeat with f in (choose file with multiple selections allowed)
set name of f to text 6 thru -1 of (get name of f)
end repeat
end tell
return input
结束运行
(重命名 Finder 项目 - - 使用以下参数添加日期或时间:)
日期/时间:创建格式:年月日其中:名称之前分隔符:无分隔符:下划线
(例如:20131016+_商品名称.xxx)
如果您不想在开头使用“20”,则运行另一个类似上述的 Applescript 来再次删去前两个字符,因为此 Automator 项目会自动添加“20”。
从这里获取原始脚本:
答案2
如果所有文件都在同一个目录中,您可以在终端中运行以下命令:
cd directory; for f in *; do mv "$f" "${f:4:2}${f:0:4}${f:6}"; done
如果文件位于不同的目录中:
find directory -name \*.xxx | while read f; do
f2=${f##*/}
mv "$f" "${f%/*}/${f2:4:2}${f2:0:4}${f2:6}"
done