2007-10-31 [長年日記]

バッチファイル

普段はちょっとしたスクリプトはshで書くのですが、バッチファイルで書く必要があったので少し調べてみました。書き始めてまずはじめに困ったのは、コマンドの出力結果の取り出し方です。shでいうところのバッククオートの代わりはFORを使うようです。

例えば、日付をYYYYMMDDの形式で取得する、

DATE=`date +%Y%m%d`

と同じ事をやるには、

FOR /F "tokens=1-3 delims=/" %%a IN ('date /T') DO set DATE=%%a%%b%%c

のようにします。Subversionで現在のリビジョンを取得する、

REVISION=`svn info . | grep "Last Changed Rev" | cut -f 4 -d ' '`

は、

FOR /F "tokens=1-4 delims=: " %%a IN ('svn info .') DO IF "%%a %%b %%c" EQU "Last Changed Rev" set REVISION=%%d

のようにすれば良さそうです。高機能なんだか低機能なんだか良く分かりません。

[]