私は、これを動作させるために複数の方法を研究し、テストしましたが、私たちのIT担当者と私自身は、最終的には、サーバー上で3つのpythonスクリプトを実行して、一連のExcelファイルを調べてエラーをスキャンする必要があります。エラーがある場合は、適切な人にメールを送信して修正します。スクリプト自体は、CMDプロンプトを個別またはバッチファイルで実行しても正常に動作します。これらのスクリプトは、コマンドプロンプトから手動で実行すると完全に機能します。スケジューラを介してPythonスクリプトを正しく実行できない
ただし、スクリプトまたはバッチファイルのいずれかをスケジュールしようとすると、それらは完全には実行されません。私はスクリプトの早い段階でprintステートメントを持っていますが、Python.exeで正常に動作しますが、スクリプトは突然終了します。これはPythonがうまく動くと思うが、スクリプトの内容がスケジューラを通して正しく動作していない。
トラブルシューティングを単純化するために、test.pyとtest2.pyという2つのテストスクリプトを作成し、サーバーの単純なディレクトリ、C:\ Storeに配置しました。この最初のスクリプトは、何かをコンソールに出力し、何かをファイルに書き込んでそれをルートディレクトリに保存します。その後、ユーザーの入力を待ちます。 2番目のスクリプトは簡単で、Pythonのアーキテクチャとそれをビルドするパスだけを表示します。コマンドプロンプトから手動で実行すると、両方のスクリプトが正常に動作します。
私はこれらのテストスクリプトのために使用しています何**test.py** Does NOT Work as scheduled task
import io
print('JUST WORRRRRKKK!')
with open("//kaicmapp/Store/foobar.txt", "w") as file:
file.write("Hello!")
file.close()
raw_input("press any button")
**test2.py** Works as scheduled task
import sys
import platform
print("Python EXE : " + sys.executable)
print("Architecture : " + platform.architecture()[0])
raw_input("\n\nPress ENTER to quit")
:
- のPython 2.7 32ビット
- のWindows Server 2012
- 管理者権限を持つWindowsユーザープロファイル
- のPython 2.7 exeファイルは、環境として追加しました変数。私もserverandにインストールのPython 3持っているように、もっぱらそれらを実行できるようにしたい、インストールディレクトリにpython2.exeにリネーム私が試した
物事:
- は、管理者としてタスクスケジューラを実行します
- 実行して/最上位の権限なしに、現在のユーザーに関係なく、現在のユーザーの
- ランでログインでログインしているだけ
- ランは、パスワードが正しく入力され \ストア: python2」Cを使用して
- :
- は解決策は、私が気づいた
- バッチファイルでスクリプトを実行します\ test2.py "はスケジューラでスクリプトを正常に実行し、ユーザーの入力を待つプロンプトが表示されます。スケジューラから実行結果が表示される操作が正常に完了しました。 (0x0)
- 上記の同じタスクを使用して、代わりにtest.pyを実行すると、Pythonシェルからの出力は得られません。単純にポップアップして消えます。スケジューラから実行結果が表示される機能が正しくありません。(0x80070001)
物事の両方のスクリプトにhere、同じ結果に結果を記載されている
進め方についてのアイデアはありますか?私はサーバーの管理タスクにあまり慣れていないので、ここでかなり失われていると感じています。