在 Windows 中,我提出了两种解决方案。
第一个选项:创建一个 .bat 文件。
第 1 步
创建一个 .bat 文件以指示您要运行的命令和将执行的脚本文件,例如:
start C:\Users\userX\Python.exe C:\Users\userX\PycharmProjects\Automation_tasks\create_workbook.py
第 2 步
打开任务计划程序并单击任务计划程序库以查看当前执行的任务。单击“创建任务”选项。
第 3 步
在“常规”选项卡中,输入新任务的名称并单击选项 Run whether user is logged on or not,检查选项 Run with highest privileges 并确保设置您的操作系统的适当版本(在我的情况下,我选择了 Windows 7, Windows Server 2008 R2 .
第 4 步
在“操作”选项卡中,单击“新建”按钮并输入以下内容:
在程序/脚本中,您需要查找任务计划程序将调用以运行 .bat 文件的 Powershell 路径。就我而言,我的 Powershell 路径是:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
在添加参数(可选)中,您需要键入将由 Powershell 执行的文件的路径。就我而言,路径是:
C:\Users\userX\Desktop\run_the_bat_file.bat
在Start in (optional)中需要输入文件的路径但不输入.bat文件的名称,即:
C:\Users\userX\Desktop\
第 5 步
单击“触发器”选项卡并选择您希望执行此任务的频率。
第 6 步
最后,通过从任务计划程序库中选择任务并单击“运行”选项来测试您的任务是否真正有效。
第二个选项:使用任务计划程序运行 .py 文件
第 1 步
打开任务计划程序并单击任务计划程序库以查看当前执行的任务。单击“创建任务”选项。
第 2 步
在“常规”选项卡中,输入新任务的名称并单击选项 Run whether user is logged on or not,选中选项 Run with highest privileges 并确保设置您的操作系统的适当版本(在我的情况下,我选择了 Windows 7, Windows Server 2008 R2 .
第 3 步
在“操作”选项卡中,单击“新建”按钮并输入以下内容:
在程序/脚本中,您需要查找任务计划程序将调用以运行 python 脚本的 Python.exe 路径。就我而言,我的 Python.exe 路径是:
C:\Users\userX\python.exe
在添加参数(可选)中,您需要仅输入您的 python 脚本的名称。就我而言,路径是:
Permissions_dump.py
在Start in (optional)中需要输入文件的路径但不输入python脚本的名称,即:
C:\Users\userX\PycharmProjects\1099_vendors_costs
第 4 步
单击“触发器”选项卡并选择您希望执行此任务的频率。
第 5 步
最后,通过从任务计划程序库中选择任务并单击“运行”选项来测试您的任务是否真正有效。
另一种选择(如果您将 .py 转换为 .exe)
如果您使用库 Cx_Freeze 将 .py 转换为 .exe 并希望使用任务调度程序自动执行此任务,则需要执行以下步骤:
第 1 步
点击创建任务,然后点击操作选项卡输入以下内容:
在程序/脚本中,您需要查找任务计划程序将调用以运行 .exe 脚本的 C:\Windows\explorer.exe 路径。
在添加参数(可选)中,您需要仅输入您的 .exe 文件的名称:CustomerPopulation.exe
在Start in (optional)中需要输入文件的路径但不输入.exe文件的名称,即:
C:\Users\userX\PycharmProjects\executables
在“常规”选项卡中,确保已选择 Run only when user is logged on 并取消选中 Run with the highest privileges。
如果报告停止工作
请务必检查您的密码是否未过期,否则将不会发送报告。
参考资料:
- https://gis.stackexchange.com/questions/140110/running-python-script-in-task-scheduler-script-will-not-run?newreg=603bcdbc381b41a283e5d8d0561b835e
- https://www.youtube.com/watch?v=oJ4nktysxnE
- https://www.youtube.com/watch?v=n2Cr_YRQk7o