米国英語ロケールでWindows2008R2を使用しています。8月1日以降、バッチファイルが機能しなくなりました。3月から7月までは問題なく動作していました。
スクリプトは、先行ゼロを含む数値の月を文字列に変換します。これが再現するスクリプトです。実際のバッチスクリプトは、%date%から数値の月を抽出します。
set month=07
REM convert numerical month to string
for /f "tokens=%month%" %%A in (
"jan feb mar apr may jun jul aug sep oct nov dec") do (
set month_str=%%A
)
echo %month_str%
上記は問題なく動作します。「7月」と表示されます
しかし、月を08に変更すると、エラーメッセージが表示されて失敗しました
8" was unexpected at this time
そこで、先行ゼロを削除しました。
set /A month=100%month% %% 100
今、それは再びうまく機能しています、そしてここに私の質問があります
- Windows 2008 R2のFORコマンドの公式ドキュメントはどこにありますか?
編集:http ://technet.microsoft.com/en-us/library/cc754900.aspx
- トークンオプションにゼロの埋め込み番号を渡すのはおそらく私のせいですが、なぜ07が受け入れられ、08が受け入れられなかったのですか?
- 07が有効なパラメーターである場合、それは7と同じですか、それとも他の何かとして解釈されますか?