たまにはperlでも
2011年12月13日 Perl コメント (2)#!/usr/bin/perl
use strict;
use warnings;
my $base_name = ’./dummy’;
# Start Rename.
# Read base directory files.
my @file = &Function_Read_Directory($base_name);
# Rename files to file update time.
foreach(@file){
# File found image file.
my $fn = qq|$base_name/$_|;
if((-f qq|$fn|)and($_ =~ m/(.jpg$)|(.jpeg$)|(.png$)|(.bmp$)/gi)){
# Get file update time.
my($sec,$min,$hour,$day,$mon,$year) = localtime((stat($fn))[9]);
# Conversion random number.
my $int = sprintf("%05d",rand(int(10000)));
# Conversion update time.
my $update_time = sprintf("%04d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$day,$hour,$min,$sec);
# Temp rename target file. // extension no change.
if($fn =~ m/(.*).(.*)/g){
rename($fn,qq|$base_name/$update_time$int.$2|);
}
}
}
# Read base directory files.
@file = ();
@file = &Function_Read_Directory($base_name);
my $cnt = 0;
foreach(@file){
# File found image file.
my $fn = qq|$base_name/$_|;
if((-f qq|$fn|)and($_ =~ m/(.jpg$)|(.jpeg$)|(.png$)|(.bmp$)/gi)){
# Conversion count.
$cnt = sprintf("%05d",$cnt);
# Commit rename target file. // extension no change.
rename($fn,qq|$base_name/$cnt.$2|) if($fn =~ m/(.*).(.*)/g);
# Add count
$cnt++;
}
}
# Read directory.
sub Function_Read_Directory{
# Read directory.
opendir(DIR,qq|$_[0]|) or die;
my @dir = readdir(DIR);
closedir(DIR);
# Sort descending order.
my @sort_dir = sort {$a cmp $b} @dir;
return @sort_dir;
}
exit;
# どうもインデントがおかしいのでタブを全角に変換して記載
# 時刻整形の箇所が2行になっているが、本来は同一行
コメント
時間が無いんだ
どうしてだ
もう寝る時間だ