2014年3月13日木曜日

タスクスケジューラでバッチファイルが実行できない

Windowsのタスクスケジューラでバッチファイルを実行しようとして、バッチファイルがうまく実行できないことがありました。
他のバッチファイルは実行できるのですが、特定のバッチファイルのみが実行できず、しかもタスクスケジューラは何が問題か教えてくれないので、原因が特定できず少しハマってしまいました。


その原因はずばり、カレントディレクトリにありました。

バッチファイルをエクスプローラーやコマンドプロンプトから実行しているときは、結果的にバッチファイルのディレクトリがカレントディレクトリになっているのですが、タスクスケジューラから実行する場合は、カレントディレクトリがバッチファイルのディレクトリになっていないのです。

そこで、バッチファイルの先頭にcdコマンドを挿入し、バッチファイルのディレクトリに移動するようにします。

cd C:\batch_dir

これでうまくいったのですが、その後、環境を変えた時にこれでもうまくいかないことがありました。
それはドライブが変わった時です。その場合はさらにカレントドライブも変更します。

D:
cd D:\batch_dir

つまらないところでハマってしまいました。

1 件のコメント:

あいう さんのコメント...

同じく、ハマっててこの記事で思い出しましたwありがとうw