« Kanboard | Main

2023.06.14

ファイルの更新日をExif情報内の撮影日時に変更する(PowerShell)

PowerShellを使って、現在のフォルダ内にあるjpgファイルにおいて、ファイルの更新日を Exif の撮影日時に変更する。

ちょっと力業。

Add-Type -AssemblyName System.Drawing;
$files = Get-Item *.jpg;
foreach ($f in $files) {
$img = New-Object Drawing.Bitmap($f.FullName);
$byteAry = ($img.PropertyItems | Where-Object{$_.Id -eq 36867}).Value;
$img.Dispose();
$time = [System.Text.Encoding]::ASCII.GetString($byteAry);
$timeAry = $time.Split(": ");
$createTime = [String]::Format("{0}/{1}/{2} {3}:{4}:{5}",$timeAry[0],$timeAry[1],$timeAry[2],$timeAry[3],$timeAry[4],$timeAry[5]);
Set-ItemProperty $f -name LastWriteTime -value $createTime;
}

(実際には1行で・・・)

Add-Type -AssemblyName System.Drawing; $files = Get-Item *.jpg; foreach ($f in $files) { $img = New-Object Drawing.Bitmap($f.FullName); $byteAry = ($img.PropertyItems | Where-Object{$_.Id -eq 36867}).Value; $img.Dispose(); $time = [System.Text.Encoding]::ASCII.GetString($byteAry); $timeAry = $time.Split(": "); $createTime = [String]::Format("{0}/{1}/{2} {3}:{4}:{5}",$timeAry[0],$timeAry[1],$timeAry[2],$timeAry[3],$timeAry[4],$timeAry[5]); Set-ItemProperty $f -name LastWriteTime -value $createTime; }

 

CD-Rに焼いて店頭でプリントしようと思った際に、デフォルトのソート順が「更新日順」だったので、わかりやすいように更新日を撮影日に置き換えてしまえ、と・・・(普段はWeb経由でプリントを依頼するのですが、CD-Rに焼いて配布する必要が生じまして)。ちなみに選択できるソート順が「更新日(降順)」「更新日(昇順)」「ファイル名」でした。

多分、これでファイルを探しやすくなったのではないかな、と。

 

(参考)PowerShellメモ 画像のExif情報を読み込む

 

|

« Kanboard | Main

パソコン・インターネット」カテゴリの記事

携帯・デジカメ」カテゴリの記事

プログラム」カテゴリの記事

Comments

The comments to this entry are closed.