2010-04-27 45 views
38

我有一個python腳本,我想定期運行。我正在運行Windows 7.完成此操作的最佳方法是什麼?最簡單的方法?附表Python腳本 - Windows 7

+0

看到這一點:https://blogs.esri.com/esri/arcgis/2013/07/30/scheduling-a-scrip/ – 2016-03-28 15:24:59

回答

54

你可以做到這一點的命令行,如下所示:

schtasks /Create /SC HOURLY /TN PythonTask /TR "PATH_TO_PYTHON_EXE PATH_TO_PYTHON_SCRIPT" 

這將創建一個名爲「PythonTask」每小時的任務。您可以用DAILY,WEEKLY等替換HOURLY。 PATH_TO_PYTHON_EXE將如下所示:C:\ python25 \ python.exe。通過在命令行中寫入更多示例:

schtasks /? 

否則,您可以打開任務計劃程序並通過GUI執行此操作。 希望這有助於。

+0

「/ RU系統」 即使在用戶未登錄時也可以運行腳本,對於服務器等有用。 – Paolo 2016-01-19 16:03:35

7

一個簡單的方法來做到這一點是有一個延遲循環連續運行的腳本。例如:

def doit(): 
    print "doing useful things here" 

if __name__ == "__main__": 
    while True: 
     doit() 
     time.sleep(3600) # 3600 seconds = 1 hour 

然後讓該腳本繼續運行,並且每小時執行一次該腳本。

請注意,這只是解決問題的一種方法;使用任務計劃程序等操作系統提供的服務是另一種避免必須始終保持腳本運行的方式。

+3

與Task Scheduler相比,這有什麼優勢?或者以其他方式,爲什麼與TS混淆,這看起來更乾淨,更容易。 – Danijel 2016-03-09 17:24:09

+2

使用這種方法,不能保證任務每小時完成一次......這隻能確保任務之間有一小時的時間。如果任務花費的時間超過幾秒鐘,可能會有所幫助。 – user3817518 2017-11-14 21:47:57

47

您可以使用從控制面板的GUI(稱爲「計劃任務」)添加一個任務,大部分應該是不言自明,但有兩件事情需要注意的:

  • 請確保填寫C:\python27\python.exe作爲程序路徑,並將腳本的路徑作爲參數。

  • 如果您選擇Run whether user is logged on or not,我收到一個錯誤:The directory name is invalid (0x87010B)。選擇Run only when user is logged on「解決」了這個問題。

這花了我相當多的找出...

+0

這對我無效。你如何看到錯誤是什麼? – endolith 2015-09-30 18:41:17

+1

@endolith我發佈了這個答案已經有好幾年了,並沒有真正的Windows機器來測試:-)從內存中,我認爲你可以在你設置任務的屏幕上看到它......如果你找不到它,這可能是另一個問題的好主題;-)(也許​​最好張貼在[超級用戶](https://superuser.com)。 – Carpetsmoker 2015-10-01 20:59:05