#!/usr/bin/perl -w
use strict;
use Image::ExifTool;
use Data::Dumper;
my $newDate;
my $folderPath;
my $exifTool = new Image::ExifTool;
if (scalar @ARGV < 1) {
print 'usage: ', $/ ,
'$ perl exifEditor.pl -date=2014/03/03 -folder=/path/to/image_folder/', $/;
exit;
}
else {
for my $v(@ARGV) {
my @kv = split("=", $v);
if (scalar @kv < 1) {
next;
}
if ($kv[0] eq '-date' && $kv[1] =~ /[0-9]{4}\/[0-9]{2}\/[0-9]{2}/) {
$newDate = $kv[1];
$newDate =~ s/([0-9]{4})\/([0-9]{2})\/([0-9]{2})/$1:$2:$3 00:00:00/g;
}
elsif ($kv[0] eq '-folder') {
$folderPath = $kv[1];
unless ($folderPath =~ /\/$/) {
$folderPath .= '/';
}
}
}
if (!$newDate) {
print 'Date is incorrect.', $/;
exit;
}
if (!$folderPath) {
print 'Folder is incorrect.', $/;
exit;
}
}
opendir my $dh, $folderPath or die "$!:$folderPath";
while (my $fileName = readdir $dh) {
next if $fileName =~ /^\./;
my $filePath = $folderPath . $fileName;
$exifTool->ExtractInfo($filePath) or die $!;
print "FileName\t", $fileName, $/;
print "CreateDate\t", $exifTool->GetValue('CreateDate'), $/;
print "DateTimeOriginal\t", $exifTool->GetValue('DateTimeOriginal'), $/;
print $/;
$exifTool->SetNewValue("DateTimeOriginal" => $newDate);
$exifTool->WriteInfo($filePath) or die $!;
}
closedir $dh;
exit;
1;