Windows任务计划程序未运行python脚本/批处理文件
我有一个非常简单的python脚本(用来发送电子邮件),当我在cmd窗口中运行它时,或者在python中运行它,或者如果我直接启动指向它的a.bat文件,它就可以完美地工作 但是,当我试图让任务调度器运行它时,什么都没有发生。任务计划程序表示它已成功运行并完成,日志文件为空,但未发送电子邮件 我知道还有很多其他问题与这个问题有关,我已经通读了它们并尝试了解决方案,但似乎没有任何效果。我不熟悉python(也不熟悉调度任务!),所以我可能没有正确地实现解决方案 这是我试过的Windows任务计划程序未运行python脚本/批处理文件,python,windows,batch-file,scheduled-tasks,taskscheduler,Python,Windows,Batch File,Scheduled Tasks,Taskscheduler,我有一个非常简单的python脚本(用来发送电子邮件),当我在cmd窗口中运行它时,或者在python中运行它,或者如果我直接启动指向它的a.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
- 执行上述操作,但使用程序/脚本中cmd.exe的完整路径以及.bat文件作为参数。我还尝试将bat文件的位置放在“起始位置(可选):”
- 试图通过任务调度器直接运行.py文件,将其放入“程序/脚本:”框中
- 试图通过任务调度器直接运行.py文件,将python.exe(见上文)的完整路径放在“程序/脚本”中,将sript.py放在“添加参数”中。我还尝试了在“开始”中使用脚本位置的路径
- 尝试通过cmd运行.py文件-因此将cmd.exe的完整路径放在“Program/script”中,将script.py文件(完整路径)放在“Arguments”中
我创建的其他计划任务(不涉及python脚本)工作得很好,但这让我感到困惑。请帮忙 只需添加一个答案,以防影响到其他新手:)。我需要选中“仅在用户登录时运行”,还需要取消选中“以最高权限运行”
我猜这是因为正如埃里克森所说,Outlook有一个GUI。只是添加了一个答案,以防影响到其他新手:)。我需要选中“仅在用户登录时运行”,还需要取消选中“以最高权限运行” 我猜这是因为正如埃里克森所说,Outlook有一个GUI。还有其他东西可以尝试: 确保在批处理文件中添加一个命令,以将目录更改为可执行文件所在的目录
@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
@echo关闭
回声。--------------------------------------
echo.Windows任务在%date%,%time%(本地时间)调用
回声。--------------------------------------
设置My_exe_dir=“C:\Program Files(x86)\MyProgram\FolderWhereExeLives”
设置输入\u dir=“C:\Program Files(x86)\MyInputFolder”
cd%My_exe_dir%要尝试的其他内容:
确保在批处理文件中添加一个命令,以将目录更改为可执行文件所在的目录
@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
@echo关闭
回声。--------------------------------------
echo.Windows任务在%date%,%time%(本地时间)调用
回声。--------------------------------------
设置My_exe_dir=“C:\Program Files(x86)\MyProgram\FolderWhereExeLives”
设置输入\u dir=“C:\Program Files(x86)\MyInputFolder”
cd%My_exe_dir%为我指定“开始于”目录:
在计划任务的属性中定义目录中的开始。
启动Windows任务计划程序。
导航到该任务并双击它以打开该任务的属性。
选择tab Action并单击Edit按钮。
在中有Start(可选)。在此输入已执行批处理文件的路径。
单击“确定”按钮两次,将此重要修改保存到属性中。对于我,指定“开始于”目录:
在计划任务的属性中定义目录中的开始。
启动Windows任务计划程序。
导航到该任务并双击它以打开该任务的属性。
选择tab Action并单击Edit按钮。
在中有Start(可选)。在此输入已执行批处理文件的路径。
在“确定”按钮上单击两次可将此重要修改保存到“属性”中。在任务计划程序中运行Python脚本时不需要cmd.exe或批处理文件。直接运行python.exe,我知道您已经尝试过了,所以问题与您的脚本有关。首先尝试写入文件的简单测试脚本。您的脚本是否具有任何GUI元素或执行(直接或间接通过COM)任何具有GUI的程序(例如Outlook)?如果是这样,您需要确保它“仅在用户登录时”运行。我的脚本确实使用outlook-我将设置更改为“仅在用户登录时”但没有乐趣。taskeng.exe打开,但什么也没有发生,任务计划程序说它正在运行。我现在将尝试另一个脚本,看看是否有效。您可以在不使用脚本的情况下运行python.exe进行测试。如果选择以交互方式登录的用户,则手动运行任务时,该任务应在该用户会话的控制台窗口中打开。用户必须以交互方式登录才能创建任何窗口。非交互式任务在服务会话(0)中运行,该会话与交互式会话(1+)隔离。在任务计划程序中运行Python脚本不需要cmd.exe或批处理文件。直接运行python.exe,我知道您已经尝试过了,所以问题与您的脚本有关。首先尝试写入文件的简单测试脚本。您的脚本是否具有任何GUI元素或执行(直接或间接通过COM)任何具有GUI的程序(例如Outlook)?如果