【问题标题】:Running Windows Task Scheduler through Python通过 Python 运行 Windows 任务计划程序
【发布时间】:2015-08-08 06:32:54
【问题描述】:

我是新来的。我的任务是创建一个 Windows 任务计划来运行一个 .BAT 文件,使用我们的 Python API 将其推送到我们的远程 PC 机群。

我在将参数传递给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 运行它。
  • 谢谢,我确实通过执行以下操作弄清楚了: - 使用 shlex.split() 解析代码,结果是这样的 - '/delete', '/tn' , 'update_auto_beta', '/f' - 删除 schtasks 谢谢
  • 如果shlex.split 有效,命令行必须已经正确引用。在 Windows 上,Popen 必须将列表重建为CreateProcess 的字符串,因此只需将命令作为字符串传递。

标签: python windows scheduled-tasks


【解决方案1】:

这对我有用:

import subprocess
subprocess.call('schtasks /create /SC ONLOGON /TN "Update_Automation_Beta" /TR "C:\test\run_admin.bat"')

在外面使用单引号,在里面使用双引号。如果需要,您还可以输入 schtasks 的完整路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2011-01-22
    相关资源
    最近更新 更多