0

我有一个非常简单的 python 脚本(用于发送电子邮件),当我在 cmd 窗口或 python 中运行它时,或者如果我直接启动指向它的 .bat 文件时,它可以完美运行。

但是,当我尝试让任务调度程序运行它时,什么也没有发生。任务计划程序说它运行并成功完成,日志文件为空白,但没有发送电子邮件。

我知道还有很多与此问题相关的其他问题,我已经阅读了它们并尝试了解决方案,但似乎没有任何效果。我是 python 新手(以及调度任务!),所以我可能错误地实现了解决方案。

这是我尝试过的...

  • 以各种方式创建包含脚本的批处理文件:

    python C:\Users\me\Documents\etc\script.py >C:\Users\me\Documents\etc\log.txt
    
    python "C:\Users\me\Documents\etc\script.py >C:\Users\me\Documents\etc\log.txt"
    
    C:\Users\me\AppData\Local\Programs\Python\Python35-32\python.exe C:\Users\me\Documents\etc\script.py
    
    "C:\Users\me\AppData\Local\Programs\Python\Python35-32\python.exe" "C:\Users\me\Documents\etc\script.py"
    
    C:\Users\me\Documents\etc\script.py
    

双击文件时,所有这些都可以正常工作-但没有一个在任务管理器中运行。(尽管他们说他们已经成功完成)。在任务管理器中,我只是将 .bat 文件的链接放在“程序/脚本”框中。

  • 执行上述操作,但在程序/脚本中使用 cmd.exe 的完整路径,并将 .bat 文件作为参数。我还尝试将 bat 文件的位置放在“开始于(可选):”中

  • 尝试通过任务调度程序直接运行 .py 文件,将其放入“程序/脚本:”框中

  • 尝试通过任务调度程序直接运行 .py 文件,将 python.exe(见上文)的完整路径放在“程序/脚本”中,并将 sript.py 放在“添加参数”中。我也尝试过使用“开始于”中脚本位置的路径。

  • 尝试通过 cmd 运行 .py 文件 - 因此将 cmd.exe 的完整路径放在“程序/脚本”中,将 script.py 文件(完整路径)放在“参数”中。

我尝试直接运行 script.py 的一些只是在任务计划程序中永远说“正在运行”,但我没有记下这些是什么。

我正在运行 Windows 7(64 位),并且有 Python 3.5.1(32 位)。我有本地管理员权限。

我创建的其他计划任务(不涉及 python 脚本)工作正常,但这让我很难过。请帮忙!

4

3 回答 3

2

只需添加一个答案,以防这会影响任何其他新手:)。我需要选中“仅在用户登录时运行”,并取消选中“以最高权限运行”。

我猜这是因为 eryksun 说 Outlook 有一个 GUI。

于 2016-02-19T10:12:50.460 回答
0

对我来说,指定“开始于”目录有效:

在计划任务的属性中定义在目录中启动。 启动 Windows 任务计划程序。导航到任务并双击它以打开任务的属性。选择选项卡操作并单击按钮编辑。有开始(可选)。在此处输入执行的批处理文件的路径。单击“确定”按钮两次以将这一重要修改保存在属性中。

于 2021-03-07T19:23:02.127 回答
0

其他尝试:

确保在您的批处理文件中添加命令以将目录更改为可执行文件所在的位置。

@echo off
echo.------------------------------------------------   
echo.Windows Task invoked on %date%, %time% (local time)
echo.------------------------------------------------   

SET My_exe_dir="C:\Program Files (x86)\MyProgram\FolderWhereExeLives"

SET Input_dir="C:\Program Files (x86)\MyInputFolder"

cd %My_exe_dir%  <-- This was the key for me.

%My_exe_dir%\myprogram.exe %Input_dir%\MyInputFile.xml -1
于 2017-08-04T13:27:32.410 回答