通过Windows任务调度器调度Python脚本

通过Windows任务调度器调度Python脚本,python,windows-task-scheduler,Python,Windows Task Scheduler,请遵守以下Python脚本“script.py”: 我的目的是使用Windows任务调度器计划Python脚本。我以前使用其他Python脚本成功地完成了这项工作。但是,我无法通过调度执行上面显示的脚本。我不确定这是Windows任务调度程序问题还是Python问题,但我知道: 如上所示,“Script.py”是一个用于在“Some_目录”目录上运行7zip压缩的脚本。脚本本身及其调用的7z.exe应用程序都存储在“Y:\z_7z”目录中 手动执行时,脚本似乎工作正常。我可以双击脚本,它将正确执

请遵守以下Python脚本“script.py”:

我的目的是使用Windows任务调度器计划Python脚本。我以前使用其他Python脚本成功地完成了这项工作。但是,我无法通过调度执行上面显示的脚本。我不确定这是Windows任务调度程序问题还是Python问题,但我知道:

如上所示,“Script.py”是一个用于在“Some_目录”目录上运行7zip压缩的脚本。脚本本身及其调用的7z.exe应用程序都存储在“Y:\z_7z”目录中

手动执行时,脚本似乎工作正常。我可以双击脚本,它将正确执行。此外,我可以通过以下命令从命令行执行脚本:

Y:\z_7z\Script.py
但是,我无法通过导航到“C:\Python27”目录并尝试以下操作来手动执行脚本:

python Y:\z_7z\Script.py
这会产生以下错误:

Line 5 in module subprocess.Popen(cmd, stderr = subprocess.STDOUT, ...)
WindowsError: [Error 2] The system cannot find the file specified
提供所有这些信息后,我遇到的真正问题是Windows任务计划程序无法执行此脚本(上次运行结果=0x1)。我已经尝试了各种Windows任务计划程序配置,包括一个似乎很理想的配置,如下所示:

  • 程序/脚本:“C:\Python27\python.exe”
  • 添加参数(可选):“Y:\z\u 7z\Script.py”
  • 无论用户是否登录,都要运行
同样,我已经安排了其他已经成功运行的Python脚本。此Windows任务计划程序任务似乎配置正确。我浏览了一些更高级的设置,没有发现任何与这项任务有关的可疑之处

  • 不要只启动
    7z
    。提供可执行文件的完整路径

    cmd=[r'C:\ProgramFiles\7zip\7z.exe','a',zip\u文件名,src\u目录,'-mx9'] 考虑到
    C:\Program Files\7zip\7z.exe
    是可执行路径,这将起作用

  • 尝试不要以脚本作为参数运行
    python
    进程。运行python脚本本身

  • 您的
    zip\u文件名是相对的。我不确定这个参数是不是文件名。这可能是一条路。在这种情况下,可以在
    C:\Windows\System32
    上创建.7z文件。要修复此问题,请将
    zip\u file\u name
    设置为完整路径


  • 进行该更改后,Windows任务计划程序上次运行结果=“操作已成功完成。(0x0)”。因此,似乎现在任务调度器端的所有内容都已正确设置。但是,脚本没有做任何事情。不过,我可以手动运行脚本,效果非常好。另外,可能值得注意的是,我正在关闭所有程序以测试计划的任务。我在登录和未登录时都在测试它。同样的结果。成功的任务,看似不成功的脚本。你在(3)中的建议解决了这个问题。我也试过了,但似乎没有什么不同。完成(3)后,无论我是否执行(2),脚本都会运行。
    Line 5 in module subprocess.Popen(cmd, stderr = subprocess.STDOUT, ...)
    WindowsError: [Error 2] The system cannot find the file specified