2
我是SO的新手。我有權創建一個Windows任務計劃,以使用我們的Python API運行.BAT文件,將其推送到我們的遠程PC機隊。通過Python運行Windows任務計劃程序
我在將參數傳遞給schtask.exe
時遇到了問題。
下面是代碼:
import subprocess
path = "c:\windows\System32\schtasks.exe"
subprocess.Popen([path, "schtasks /create /SC ONLOGON /TN 'Update_Automation_Beta' /TR 'C:\test\run_admin.bat'"], shell = True)
注:任務僅僅是一個測試任務,現在,當我試圖弄明白。 此外,如果直接鍵入命令提示符窗口,它會工作,去掉引號等
如果您想使用列表,請將整個命令行分割爲單獨的參數,但不要重複'schtasks'。並且不要使用'shell = True',因爲沒有理由使用cmd.exe來運行它。 – eryksun
謝謝,我通過以下操作解決了這個問題: - 使用shlex.split()解析代碼,使其成爲像這樣的東西 - '/ delete','/ tn','update_auto_beta','/f' - 刪除schtasks 謝謝 –
如果'shlex.split'正常工作,那麼命令行必須已經正確引用。在Windows上,'Popen'必須將它重建爲'CreateProcess'的字符串,因此只需將該命令作爲字符串傳遞。 – eryksun