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