2016-06-14 4 views
0

から「作成日」を設定しました.World of Warcraftのスクリーンショットが入ったフォルダがあり、オリジナルの日付スタンプ(日付作成メタデータ)が失われました。OSXはファイル名

良いニュースは、すべてのファイルが日付

WoWScrnShot_123109_224259.jpg

WoWScrnShot_092510_213950.jpeg

WoWScrnShot_041813_183548.tga

WoWScrnShot_011315_132530.png

だから、だと体系的に命名されていることです WoWScrnShot_MMDDYY_HHMMSS.filetype

スクリーンショットフォルダのすべての画像をループして、それに応じてメタデータを設定するスクリプトが必要です。

注:ファイルは、これは私はそれが動作しますので、私はちょうど少し修正することを正確に同じ目的のためにしばらく前に書いた、本当に醜いのbashスクリプトであるJPG/JPEG/TGA/PNG

+0

あなたはどの言語を使用していますか? ' - setAttributes:ofItemAtPath:error:'のドキュメントを見ましたか? –

+0

私はTerminalコマンドのtouchとSetFileを調べました。私はそれを1つのファイルに使いました。しかし、私は14000以上のスクリーンショットを持っています。それを高速化するために、各ファイル名から日付と時刻を取得し、それぞれをループさせ、それに応じて日付と時刻を設定するスクリプトを作成したいと考えています。 – emge

+0

これはどのように見えるかわかります。私はファイル名を変数に入れ、それを使って日付と時刻を設定する必要があります。いくつかの基準でフォルダ内のすべてのファイルに対してループを作成します。 – emge

答えて

0

でありますそれはあなたのために動作することを願っています。

#!/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