OSX从文件名设置“创建日期”

时间:2016-06-14 16:15:34

标签: macos loops date screenshot

我有一个文件夹,里面装满了魔兽世界的截图,我丢失了原始日期戳(日期创建的元数据)。

好消息是所有文件都系统地用日期命名

WoWScrnShot_123109_224259.jpg

WoWScrnShot_092510_213950.jpeg

WoWScrnShot_041813_183548.tga

WoWScrnShot_011315_132530.png

所以它是 WoWScrnShot_MMDDYY_HHMMSS.filetype

我想要一个循环浏览截屏文件夹中所有图片的脚本,并相应地设置元数据。

注意:文件位于jpg / jpeg / tga / png

1 个答案:

答案 0 :(得分:0)

这是一个非常丑陋的bash脚本,我之前写了一段时间用于完全相同的目的,我只是修改了一点,所以它适用于OS X.希望它适合你。

#!/bin/bash
FILES=/Path/To/Screenshots/*
for f in $FILES
do
    month="$(echo $f | sed 's/\.[^.]*$//' | awk '{gsub("/Path/To/Screenshots/WoWScrnShot_", "");print}' | awk '{print substr($0,0,2)}')"
    day="$(echo $f | sed 's/\.[^.]*$//' | awk '{gsub("/Path/To/Screenshots/WoWScrnShot_", "");print}' | awk '{print substr($0,3,2)}')"
    year="$(echo $f | sed 's/\.[^.]*$//' | awk '{gsub("/Path/To/Screenshots/WoWScrnShot_", "");print}' | awk '{print substr($0,5,2)}')"
    hour="$(echo $f | sed 's/\.[^.]*$//' | awk '{gsub("/Path/To/Screenshots/WoWScrnShot_", "");print}' | awk '{print substr($0,8,2)}')"
    minute="$(echo $f | sed 's/\.[^.]*$//' | awk '{gsub("/Path/To/Screenshots/WoWScrnShot_", "");print}' | awk '{print substr($0,10,2)}')"
    second="$(echo $f | sed 's/\.[^.]*$//' | awk '{gsub("/Path/To/Screenshots/WoWScrnShot_", "");print}' | awk '{print substr($0,12,2)}')"
    echo $f
    SetFile -d "$month/$day/$year $hour:$minute:$second" $f
    SetFile -m "$month/$day/$year $hour:$minute:$second" $f
done