08 - 1 = 008 !?

中で先月のYYYYMM表記を求める計算をしているバッチファイルが正常終了していなかったので原因を調べてみた。
このバッチファイルは環境変数DATEから文字列を切り出し、それで簡単な引き算をしているようだ。
で、echoコマンドで引き算している部分(先月なので月の数字から1を引く)で

08 - 1 = 008

となっていることを発見。(試してみたら09 - 1 = 009にもなっていた。)
バッチを作った人に調査と修正を依頼した。ほどなく原因と修正が完了したらしい。
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/ServerHelp/0df63b3c-267c-44b7-9361-ae2c4461330f.mspx?mfr=true
原因については↑に書いてあったのを教えてくれた。
どうもSetコマンドの/aオプション固有の問題らしく、8進数において08、09がないのが原因らしい。
ということで教訓
( ・ω・)つ「バッチの中での処理は極力やめましょう」