2016-02-18 84 views
0

我有一個非常簡單的python腳本(用於發送電子郵件),當我在cmd窗口或python中運行它時完美工作,或者如果我直接啓動一個.bat指向它的文件。Windows任務調度程序沒有運行python腳本/批處理文件

但是,當我嘗試讓任務調度程序運行它時,沒有任何反應。任務計劃程序說它運行併成功完成,日誌文件爲空,但沒有發送電子郵件。

我知道還有很多其他問題與這個問題有關,我已經通讀了他們並嘗試瞭解決方案,但似乎沒有任何工作。我是python的新手(以及調度任務!),所以我可能會錯誤地實現解決方案。

這裏是我試過......

  • 以各種方式創建的腳本批處理文件在裏面:

    python C:\Users\me\Documents\etc\script.py >C:\Users\me\Documents\etc\log.txt 
    
    python "C:\Users\me\Documents\etc\script.py >C:\Users\me\Documents\etc\log.txt" 
    
    C:\Users\me\AppData\Local\Programs\Python\Python35-32\python.exe C:\Users\me\Documents\etc\script.py 
    
    "C:\Users\me\AppData\Local\Programs\Python\Python35-32\python.exe" "C:\Users\me\Documents\etc\script.py" 
    
    C:\Users\me\Documents\etc\script.py 
    

所有這些正常工作時雙擊文件 - 但沒有在任務管理器中運行。 (雖然他們說他們已經成功完成)。在任務管理器中,我只是將鏈接放在「程序/腳本」框中的.bat文件中。

  • 做上述但與完整路徑的程序/腳本的CMD.EXE,和.bat文件作爲參數。我也嘗試將「bat」文件的位置放在「Start(可選)」中:「

  • 嘗試通過任務計劃程序直接運行.py文件,並將其放入」Program/script:「盒子

  • 試圖通過任務計劃程序直接運行.py文件,在「程序/腳本」中放入python.exe的完整路徑(參見上文),並在「添加參數」中輸入sript.py 」。我也試過這個路徑,在「開始」腳本的位置。

  • 嘗試通過cmd運行.py文件 - 因此將「程序/腳本」和「參數」中的script.py文件(完整路徑)中的cmd.exe的完整路徑。

一些我試圖運行script.py的人直接在Task Scheduler中直接說「running」,但我沒有記下這些是什麼。

我正在運行Windows 7(64位),並得到了Python 3.5.1(32位)。我有本地管理員權限。

我創建的其他計劃任務(不涉及python腳本)可以正常工作,但是這讓我很難過。請幫忙!

+0

您不應該需要cmd.exe或批處理文件才能在任務計劃程序中運行Python腳本。直接運行python.exe,我知道你已經嘗試過了,所以這個問題與你的腳本有關。首先嚐試寫入文件的簡單測試腳本。 – eryksun

+2

您的腳本是否具有任何GUI元素或執行(直接或間接通過COM)任何具有GUI的程序(例如Outlook)?如果是這樣,你需要確保它只在用戶登錄時運行。 – eryksun

+0

我的腳本確實使用outlook - 我將設置更改爲「僅在用戶登錄時」,但沒有喜悅。 taskeng.exe打開,但沒有任何反應,任務調度程序表示它正在運行。 – ratherstrange

回答

1

只是添加一個答案,如果這會影響其他新手:)。我需要檢查「僅在用戶登錄時運行」,並且還需要取消選中「以最高權限運行」。

我猜這是因爲eryksun說Outlook有一個GUI。

0

別的東西嘗試:

確保在批處理文件中要添加一個命令以更改目錄到您的可執行的生活。

@echo off 
echo.------------------------------------------------ 
echo.Windows Task invoked on %date%, %time% (local time) 
echo.------------------------------------------------ 

SET My_exe_dir="C:\Program Files (x86)\MyProgram\FolderWhereExeLives" 

SET Input_dir="C:\Program Files (x86)\MyInputFolder" 

cd %My_exe_dir% <-- This was the key for me. 

%My_exe_dir%\myprogram.exe %Input_dir%\MyInputFile.xml -1 
相關問題