うちではデジカメの画像を、フォルダに日付+その内容という名前をつけて、日付ごとに保存するようにしてるんですが、SDカードの容量増加もあって、すごいたくさんたまっちゃってから分類しようとするんで、片付けがとても億劫になってます。
中身見て名前付けるのはまだしも、日付ごとにフォルダ作ってそこにファイルを放り込む、という単純作業がうっとおしいので、そこを自動化するスクリプトを書きました。
Active Perl で動かしてますが、別に特別なことしてないので、漢字コード変換だけいじれば cygwin のperlとかでも動くはず。
まず、ActivePerlをインストールします。
photoautomove.pl をダウンロードして適当なところへ。
#!/usr/bin/perl -w use strict; use encoding 'shiftjis'; use Encode; my $srcdir = encode( 'shiftjis', "C:/Documents and Settings/USER_NAME/My Documents/My Pictures/日付整理対象" ); my $distdir = encode( 'shiftjis', "C:/Documents and Settings/USER_NAME/My Documents/My Pictures/日付整理後" ); checkmkdir( $distdir ); execdir( $srcdir ); exit; #----------------------------------------------------------------------- sub execdir #( src ) { my $src = shift; opendir DIR, $src; my @files = readdir DIR ; close DIR; my $filename; foreach $filename (@files) { my $file = encode( 'shiftjis', "$src/$filename" ); if ( -d $file ) { # ディレクトリの場合再帰処理 if ( ! ( $filename eq '.' || $filename eq '..' ) ) { #print "dir: $filename\n"; execdir( $file ); } } else { my @status = stat $file; my ($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime( $status[9] ); $year += 1900; $mon ++; #print "$filename $year $mon $mday\n"; my $mondir = sprintf( "%02d%02d", $year-2000, $mon ); my $daydir = sprintf( "%02d%02d%02d", $year-2000, $mon, $mday ); my $mdir = encode( 'shiftjis', "$distdir/$mondir" ); my $ddir = encode( 'shiftjis', "$distdir/$mondir/$daydir" ); # 保存先ディレクトリの存在確認して無かったら作る checkmkdir( $mdir ); checkmkdir( $ddir ); # 保存先ディレクトリにファイルを移動する my $distfile = encode( 'shiftjis', "$ddir/$filename" ); print "mv $file $distfile\n"; rename( $file, $distfile ); } } return; } sub checkmkdir #( dir ) { my $dir = shift; if ( ! ( -d $dir ) ) { print "mkdir $dir\n"; mkdir( $dir ); } }
あたまのほう、$srcdirと$distdirが整理対象フォルダと整理したものを置くフォルダなので、そのパスのうち、USER_NAMEとなってるところを自分のユーザ名に修正して、お好みで整理したい写真を置いておくパスや、整理した後の写真を置くパスを修正。
デフォルトでは「My Pictures」フォルダの中の「写真整理対象」の中を整理して「写真整理後」フォルダの中に放り込むようになっています。
「写真整理対象」に適当に整理したい写真やフォルダを突っ込んで、「写真整理」をダブルクリックして実行すると、「写真整理後」のフォルダに、「年月」と「年月日」でフォルダが作られてファイルが分類されます。
なんかいくらでも同じようなことしてくれるツールありそうな気もしますが、せっかく書いたから一応公開。