.batスクリプト スケジュールタスクに設定して夜間起動だと失敗する。環境変数timeの問題。
.batスクリプトで、windowsのスケジュールタスクに設定して夜間起動だと失敗するという問題が発生しました。
トレースを出力させると、原因が分かりました。
環境変数のtimeの問題でした。
************************************************
set day=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set dir_name=dir_%day%
mkdir %dir_name%
echo %dir_name%
************************************************
このプログラムは、
0~10時まで失敗し、「コマンドの構文が誤っています。」というエラーがでます。
10~0時までは成功します。
トレース(標準出力)をみると
0~10時までは、「yyyymmdd hmmss」
10~0時までは、「yyyymmddhhmmss」
となります。
時間の0パティングがないため、
mkdir yyyymmdd hmmss
とパラメータ数が増えてしまっていて、構文エラーだったようです。
************************************************
set time2=%time: =0%
set day=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
set dir_name=dir_%day%
mkdir %dir_name%
echo %dir_name%
************************************************
DOSプログラムは、組む頻度が少ないので、忘れないようにメモします。