0

我有一个包含数千个图片文件的文件夹。每个文件名都以 YYYY-MM-DD 开头。创建日期字段有时仅与文件名中的日期匹配。我想为每个图片文件完成此操作:

如果文件名的 YYYY-MM-DD 与创建日期不匹配,则将创建日期设置为文件名的 YYYY-MM-DD,并将创建时间设置为 11:11:11 (HH:MM:SS)。

我该怎么做?仅供参考,我使用的是 Mac mini 和 OS X 10.9,并且一直在转动我的轮子。谢谢你的帮助!

4

1 回答 1

0

你可以使用这样的 shell 命令:

for f in *; do if [[ $(date -jf %s $(stat -f%B "$f") +%F) != ${f:0:10} ]]; then SetFile -d ${f:5:2}/${f:8:2}/${f:0:4} "$f"; mtime=$(GetFileInfo -m "$f"); SetFile -m "${mtime:0:10} 11:11:11" "$f"; fi; done

SetFile 和 GetFileInfo 是开发者工具包的一部分,可以从 Xcode 的首选项或http://developer.apple.com/downloads/下载。

在 date 命令中,-j 禁止设置时间,-f 指定格式字符串,%F 是类似于 2013-12-31 的格式。stat -f 指定格式字符串,%B 是创建(出生)时间。在 GetFileInfo 和 SetFile 中,-m 是修改时间,-d 是创建时间。

于 2013-11-02T19:23:52.820 回答