・普通にダブルクリックで実行した場合は、正常動作する。
・タスクスケジューラで実行すると実行されず実行結果をみると0x1が表示されている。
上記の条件の対処方法。
よくある解決ケース
開始(オプション)が空白の場合は、プログラムと同じフォルダ指定をする
この部分を指定することによりエラーが改善するケースが多々あります。
ここを空白にしていると全ケース動かないわけではないのですが、エラーがでるケースは埋めておきましょう。
(pythonの場合)「ユーザーがログオンしているかどうかにかかわらず実行する」にしている
なぜかPythonの場合だと、「ユーザーがログオンしているかどうかにかかわらず実行する」をチェックすると動かない(右クリックで実行しても)ようでした。.batファイルを作って別途batファイル経由pythonを実行した方がいいかもしれません。
原因不明な場合のチェック方法
タスクスケジューラの履歴でチェック
無効になっている場合は右上の「すべてのタスク履歴を有効にする」を押します。
batファイルにpauseを入れて手動実行
batファイルの最終行に pause を入れてタスクで実行する。
これならbat実行ログもエラーのログも残った状態で確認することができます。
言われてみれば気づく基本的な方法ですね。
今回の原因は 7za.exe をフルパス指定していなかった事が原因でした。
確かにそれだと、ダブルクリックでは動くけど、タスクスケジューラでは起動しませんね。
c:\フォルダ名\7za.exe とフルパス指定に記述修正して実行すると解決でした。
コメント
対処方法の説明が解りやすく、勉強になりました。