我有一个非常简单的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文件(完整路径)放在一起。 / p>
我尝试运行script.py的一些直接只是在任务计划程序中说“正在运行”,但我没有记下这些是什么。
我正在运行Windows 7(64位),并且拥有Python 3.5.1(32位)。我有本地管理员权限。
我创建的其他计划任务(不涉及python脚本)工作正常,但这让我很难过。请帮忙!
答案 0 :(得分:1)
只是添加一个答案,以防这影响任何其他新手:)。我需要选中“仅在用户登录时运行”,并且还取消选中“以最高权限运行”。
我猜这是因为eryksun说Outlook有一个GUI。
答案 1 :(得分: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
答案 2 :(得分:0)
对我来说,指定“开始于”目录有效:
在计划任务的属性中定义目录中的开始。 启动 Windows 任务计划程序。 导航到任务并双击它以打开任务的属性。 选择选项卡操作并单击按钮编辑。 有开始(可选)。在此处输入执行的批处理文件的路径。 单击“确定”按钮两次以将这一重要修改保存在属性中。