« ストップモーションアニメの紹介 | メイン | ストップモーションアニメの作り方 »



ソート・リネームバッチ

ソート・リネームバッチをはてなブックマークに追加 ソート・リネームバッチをdel.icio.usに追加  Yahoo!ブックマークに登録 ソート・リネームバッチをGoogle Bookmarksに追加 ソート・リネームバッチをtwitterにポスト

ss1.JPG


突然ですが、ソフトウェア技術のポストをします。
技術って言ってもウィンドウズコマンドプロンプトのバッチなのですが、
今回作ったバッチはファイル名の変換を行うもので、ストップモーションアニメの編集に使っているものです。こんな感じになるんだって言うスクリーンショットを上げてみました。





ss2.JPG

なにが行われるのかというと、以下のようにファイルが6つある場合、

movie0001.jpg
movie0002.jpg
movie0003.jpg
movie0004.jpg
movie0005.jpg
movie0006.jpg

このファイル群を名前の降順(小さい順)でソートすると上記のように並びます。

これを以下のように名前を変更してあげるバッチです。

movie0006.jpg → movie0006.1.jpg
movie0005.jpg → movie0006.2.jpg
movie0004.jpg → movie0006.3.jpg
movie0003.jpg → movie0006.4.jpg
movie0002.jpg → movie0006.5.jpg
movie0001.jpg → movie0006.6.jpg


ss3.JPG

なにに使うのかは次のエントリに記したいと思いますが、以下のようなコードを書きました。

ダウンロード
01:> dir /b *.jpg | sort /R > dir.txt
02:> echo rem ファイル名を降順ソートしてリネームします>temp.bat
03:> set SWAPFILENAME=
04:> for /f "tokens=1,2* delims=." %%i in ( dir.txt ) do (
05:> set SWAPFILENAME=%%i
06:> goto label
07:> )
08:> :label
09:> for /f %%i in ( dir.txt ) do (
10:> echo SET STAMP=%%time%%>>temp.bat
11:> echo SET STAMP=%%STAMP::=%%>>temp.bat
12:> echo SET STAMP=%%STAMP:.=%%>>temp.bat
13:> echo SET STAMP=%%STAMP: =0%%>>temp.bat
14:> echo ren %%i %SWAPFILENAME%.%%STAMP%%.jpg>>temp.bat
15:> echo ping localhost -n 1 >>temp.bat
16:> )
17:> start temp.bat

簡単に解説します。

1行目は*.jpgファイルをファイル名で昇順(大きい順)に並べて dir.txt に落としています。unixでいう ls -lr コマンドですね。
2行目は temp.bat の作成です。とりあえずrem文をリダイレクトしています。 temp.bat は実際にリネームするバッチファイルになります。
3行目は変更先のファイル名の変数定義です。
4行目~7行目は dir.txt を読み込んで、1番初めの行のファイル名(ファイル名が1番大きい値のもの)を取得して、SWAPFIMENAMEに突っ込んでいます。また、ファイル名が決まったら8行目に飛ばしています。
9行目~16行目は実際にリネームするバッチファイルを作っていて、ファイル名にタイムスタンプを与えてリネームをするコマンドを生成しています。
10行目で、タイムスタンプを変数に格納しています。
11行目はタイムスタンプのデリミタ「:」を消しています。これは「:」がファイル名に出来ないためです。
12行目はコンマ何秒の「.」を消しています。
13行目は空白(半角スペース)「 」を「0」に置換しています。
14行目は実際にリネームするコマンドの生成です。
15行目はなぜか自分に ping を打っていますが、これは sleep コマンドがDOSに無いため、代替のコマンドです。今回のバッチはファイル名にタイムスタンプを利用しているため、同じタイムスタンプのファイル名が出来てしまわないようにしています。
17行目で最後に生成したバッチを起動しています。

このバッチのそのものの使い道は、ワタクシ用なので、あまりないと思いますが、1つ1つのコマンドは意外と使えるものを用意しました。

★このコンテンツに目的の情報はありませんでしたか?


[ 最近のエントリーとその関連エントリー ]


[ スポンサードリンク ]

トラックバック

このエントリーのトラックバックURL:
http://mojalog.com/cgi/mt/mt-tb.cgi/39

コメントを投稿

ツリータイプ・カテゴリー

open all | close all

リファラから検索


サイト内検索