2013年1月3日木曜日

[Script][BAT]バッチファイルでファイル名を一括変換します

フォルダの中にあるファイルを一括でリネームする方法です。

ケースバイケースでやり方はいろいろになると思うのですが、今回はデジカメで撮った動画ファイルの、先頭一文字を変えたいんです。

変更前のファイル(先頭が0)
変更後のファイル(先頭が1)

動画を撮るたびに00000.MTSからのカウントアップになっちゃうんで複数フォルダの動画ファイルを1フォルダにマージするとファイル名が重複しちゃうんです。だからこんな風にファイル名を一律で変えたいんです。

バッチファイルでさらっと変更できたら苦労はないのですが、どう頑張ってもうまくできなかったです。(分かる人やり方教えてください!)
VBスクリプトならできるし、フリーソフトでこんな感じの処理が出来るの見つければいくらでもできるのは分かるんですが、今回は自力での編集をやってみようと思います。

ファイル名のリスト作成

まずはファイル名のリストを作成します。

コマンドプロンプトで該当のフォルダに移動して dir /b コマンドでファイル名のリストが出来ます。

C:\> cd 該当のフォルダ
C:\該当のフォルダ> dir /b > list.txt



バッチファイル作成

次にエクセルを使ってバッチファイルを作成します。

①作成したリストをコピー&ペーストでエクセルに貼り付けます。
 list.txt とか変換と関係ないファイルはここで取り除きます。
不要なファイル名はDelキーで削除します

②ファイル名を変更するコマンドは ren コマンドなので、A列に ren と書き込みます。
 エクセル上でオートフィルという機能を使えばrenという文字列を一気にコピーできます。
A1セルにrenと書き込み
オートフィルで展開します

③次に変更後のファイル名を作ります。
 エクセル上の関数とオートフィル機能を使って全ファイル名の変更後ファイル名のリストを作成します。
変更後ファイル名の関数(=1&RIGHT(B1,8))を作り
オートフィルで展開します
④文字列をコピーしてテキストファイルに貼り付け、ファイル名を変更するバッチファイルにします。
rename.bat


バッチファイルの実行

作成したバッチファイルを実行します。


ren コマンドにより、ファイル名が変更されました。


Script のページに戻る

0 件のコメント:

コメントを投稿