簡體   English   中英

Windows任務計划程序不允許python subprocess.popen

[英]Windows Task Scheduler not allowing python subprocess.popen

前幾天我注意到了一個相當有趣的問題。

我在Windows Server 2008 RT上有一個Windows計划任務。 此任務運行批處理文件,該文件運行我已構建的python腳本。 在這個python腳本中,有一個subprocess.Popen調用來運行其他幾個批處理文件。 但是在過去的幾天里,我注意到任務已經成功運行,但是輔助批處理文件卻沒有。 我知道python腳本由於它創建的日志而成功運行,並且它所產生的所有文件都是輔助批處理文件所使用的。 但是,已完成的文件不是。

如果我只是自己運行批處理文件,一切都很完美。 Microsoft的任務計划程序是否允許程序打開其他批處理文件,是否有解決方法?

當任務調度程序試圖調用運行python腳本的.bat時,我遇到了完全相同的問題。

我發現訣竅是將bat文件的路徑放在Start中(可選)

在此輸入圖像描述

感謝Jordan8307的回答https://community.spiceworks.com/topic/531774-task-scheduler-fails-executing-bat-file-but-i-can-run-it-manually

相同的情況:taks - >批處理腳本 - > Python進程 - >子進程,但在Windows Server 2012上

我通過在subprocess.Popen提供script / exe的絕對路徑來解決這個問題。

我驗證了Python進程中可用的環境變量,腳本/ exe在PATH的目錄中。 除非我提供絕對路徑,否則Windows會提供FileNotFoundError

奇怪的是,可以在不提供絕對路徑的情況下從批處理腳本調用相同的腳本/ exe。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM