SE(しがないエンジニア)のブログ

IT技術ネタ(クラウド・セキュリティ周り)が中心です!他雑記(お馬さん 他いろいろ)もあり。

タスクスケジューラで実行した bat -> python が上手く動かない時

0x1!

タスクスケジューラの「前回の実行結果」でこれが戻ってくると厄介なもので、デバッグしても原因が中々掴めず。下記のような感じで記述していたのですが実行が出来ませんでした。

@echo off

c:
cd c:\task\maillog

python maillog_get.py %1

*「%1」の部分はタスクスケジューラの引数で設定しているものです

こんな短いバッチなのになぜ?となってしまうのですが理由としては単純なものでした。

bat -> python 実行の際はpython実行をフルパスで

(誤)python

(正)(python execution full path)\python

コマンドプロンプトの時には「誤」の方でも問題無く実行されていたので盲点でした。前提としてユーザの環境変数のPATHは通していてもダメなのですね。ネットで検索してみるとタスクスケジューラの実行出来ない問題は対処法が色々と出てきますが、(python実行に限らず)フルパス記述は大事だよ、という事で肝に銘じます!