ディレクトリ下ファイル名一括変更(DVD作成用)
指定されたディレクトリ下のファイル名を、ディレクトリ名+インデックス値に変更します。
インデックス値は、ファイル名の半角数値以降のものが使用されます。
キャプチャやエンコードしたファイルをDVD化するときに、ファイル名をあらかじめ変更しておくと
楽なのでこのプログラムを作りました。
MovieWriter 2.0 を使用しているので、拡張子 .mp2 を .mpa へ変更する処理も同時にやっています。
[使用法] perl frendir.pl ビデオ1
#!/usr/local/bin/perl
# *************************************************************
# ファイル名をディレクトリ名+インデックス値形式に一括変換
# *************************************************************
# ディレクトリ指定の取得
$dir = $ARGV[0];
if ($dir eq "" || $dir eq ".") {
$dir = ".";
}
# 指定ディレクトリに移動出来なければ終了
$ok = chdir $dir;
if ($ok == 0) {
exit -1;
}
# リネーム後に先頭につける文字列を決定
$hed = $ARGV[1];
if ($hed eq "") {
if ($dir ne ".") {
$hed = $dir . "_";
}
}
# ディレクトリリスト取得
@files = <*>;
# 個々のファイルに対するリネーム処理
foreach (@files) {
# 元の名前
$src = $_;
# 数値以降のファイル名のみに変更
s/(\D*)(\d*)/$2/;
if ($_ eq "") {
# 数値インデックスがない場合は何もしない
next;
}
# 拡張子変更
s/.mp2$/.mpa/i; # .mp2->.mpa 大文字小文字区別無し
$dst = $hed . $_;
# リネーム実行
print "RENAME : $dir/$src -> $dir/$dst\n";
rename $src, $dst;
}
exit 0;
総合ホームページ
Perl納戸部屋