タスクスケジューラからWindowsストアのPythonを実行する
pythonで書いたプログラムをタスクスケジューラーで動かそうとしたら、Windowsストアアプリで入れたpythonの実行ファイルが見つからずに少しハマったのでメモ。
忙しい人のために先に結論
ストアアプリの場合はcmd /c start "" "アプリ実行ファイル"でコマンドラインから実行できる。
タスクスケジューラーに登録するなら、
プログラム | cmd |
引数 | /c start "" "python" "c:\hoge\fuga.py" |
タスクスケジューラーで指定時刻に、「プログラムの開始」で、
引数の追加 作成した.pyファイル
としたら動くかと思ったのだけど、動かしてみると前回の実行結果が「指定されたファイルが見つかりません」になって動作しない。
テスト実行時に>python hoge.pyで動作していたので、パスは通ってるはず。whereコマンドで 調べてみると
が帰ってきた。この場所をプログラム/スクリプトの「参照」ボタンを押して上記のパスを入力すると「ファイルにアクセスできません」というエラーになる。
エクスプローラーでそのファイルを見てみると 0KB のアプリケーションとなっている。
なぜだろうと思い返してみると、そういえばこの環境のpythonはWindowsストアで入れたことを思い出した。
ストアアプリをコマンドラインで動かす方法をググってみるとcmd /c startで起動する方法が見つかった。以下のようにすると動く。
これをもとに、タスクスケジューラーには以下のように登録し、動作させると動かすことができた。
プログラム | cmd |
引数 | /c start "" "python" "c:\hoge\fuga.py" |