タスクスケジューラでbatファイル起動すると0x1 原因を確認する方法

・普通にダブルクリックで実行した場合は、正常動作する。
・タスクスケジューラで実行すると実行されず実行結果をみると0x1が表示されている。

上記の条件の対処方法。

よくある解決ケース

開始(オプション)が空白の場合は、プログラムと同じフォルダ指定をする


この部分を指定することによりエラーが改善するケースが多々あります。
ここを空白にしていると全ケース動かないわけではないのですが、エラーがでるケースは埋めておきましょう。

(pythonの場合)「ユーザーがログオンしているかどうかにかかわらず実行する」にしている

なぜかPythonの場合だと、「ユーザーがログオンしているかどうかにかかわらず実行する」をチェックすると動かない(右クリックで実行しても)ようでした。.batファイルを作って別途batファイル経由pythonを実行した方がいいかもしれません。

原因不明な場合のチェック方法

タスクスケジューラの履歴でチェック

無効になっている場合は右上の「すべてのタスク履歴を有効にする」を押します。

batファイルにpauseを入れて手動実行


batファイルの最終行に pause を入れてタスクで実行する。

これならbat実行ログもエラーのログも残った状態で確認することができます。
言われてみれば気づく基本的な方法ですね。


今回の原因は 7za.exe をフルパス指定していなかった事が原因でした。
確かにそれだと、ダブルクリックでは動くけど、タスクスケジューラでは起動しませんね。

c:\フォルダ名\7za.exe とフルパス指定に記述修正して実行すると解決でした。

コメント

  1. 対処方法の説明が解りやすく、勉強になりました。