在Windows系统中,我们可以使用任务计划程序来创建和管理定时任务。任务计划程序是Windows操作系统自带的一个功能,可以帮助我们自动执行一些重复性的任务,例如备份文件、更新软件等。
一、打开任务计划程序
首先,我们需要打开任务计划程序。有以下几种方法:
- 在开始菜单中搜索“任务计划程序”,然后点击打开。
- 按下键盘上的
Win + R
组合键,打开“运行”对话框,输入taskschd.msc
,然后点击“确定”。 - 在桌面上右键点击“计算机”或“此电脑”,选择“管理”,在弹出的窗口中选择“任务计划程序”。
二、创建基本任务
在任务计划程序中,我们可以创建两种类型的任务:基本任务和周期性任务。基本任务是指只执行一次的任务,而周期性任务是指按照一定的时间间隔重复执行的任务。下面我们以创建一个基本任务为例,介绍如何设置定时任务计划。
-
在任务计划程序中,点击右侧的“创建基本任务”。
-
在弹出的“创建基本任务向导”窗口中,输入任务的名称和描述,然后点击“下一步”。
-
选择任务的触发器。触发器是指当满足某个条件时,任务会自动执行。我们可以选择以下几种触发器:
- 登录时:当用户登录到计算机时,任务自动执行。
- 计划:可以设置一个具体的开始时间和日期,当到达这个时间点时,任务自动执行。
- 空闲时间:当计算机处于空闲状态时,任务自动执行。
- 系统启动时:当计算机启动时,任务自动执行。
-
根据需要选择一个触发器,然后点击“下一步”。
-
选择要执行的操作。这里我们可以选择“启动程序”,然后点击“下一步”。
-
浏览并选择要执行的程序或脚本,然后点击“下一步”。
-
确认任务设置无误后,点击“完成”。
至此,我们已经成功创建了一个基本任务。当满足触发条件时,该任务会自动执行。
三、创建周期性任务
除了基本任务外,我们还可以使用任务计划程序创建周期性任务。周期性任务是指按照一定的时间间隔重复执行的任务。以下是创建周期性任务的步骤:
- 在任务计划程序中,点击右侧的“创建基本任务”。
- 在弹出的“创建基本任务向导”窗口中,输入任务的名称和描述,然后点击“下一步”。
- 选择任务的触发器。这里我们选择“日程安排”,然后点击“下一步”。
- 设置任务的开始时间和日期,以及重复间隔。例如,我们可以设置每天的凌晨1点执行该任务,然后点击“下一步”。
- 选择要执行的操作。这里我们可以选择“启动程序”,然后点击“下一步”。
- 浏览并选择要执行的程序或脚本,然后点击“下一步”。
- 确认任务设置无误后,点击“完成”。
至此,我们已经成功创建了一个周期性任务。该任务会按照我们设置的时间间隔重复执行。
四、查看和管理已创建的任务
在任务计划程序中,我们可以查看和管理已经创建的任务。以下是查看和管理已创建任务的方法:
- 在任务计划程序中,可以看到左侧的任务列表。这里列出了所有已创建的任务。
- 选择一个任务,可以在右侧看到该任务的详细信息,包括触发器、操作、状态等。
- 如果需要修改一个已创建的任务,可以右键点击该任务,选择“编辑”,然后在弹出的窗口中修改任务设置。如果需要删除一个已创建的任务,可以右键点击该任务,选择“删除”。
- 如果需要查看一个已创建的任务的历史记录,可以右键点击该任务,选择“属性”,然后在弹出的窗口中切换到“历史”选项卡。这里列出了该任务的所有执行记录。
五、常见问题与解决方法
在使用任务计划程序时,可能会遇到一些问题。以下是一些常见问题及其解决方法:
- 问题:无法创建新的基本任务或周期性任务。
解决方法:请检查是否具有创建新任务的权限。如果没有权限,请联系系统管理员。 - 问题:已创建的任务没有按照预期的时间执行。
解决方法:请检查触发器设置是否正确。如果触发器设置为“登录时”,请确保用户已经登录;如果触发器设置为“计划”,请检查开始时间和日期是否正确;如果触发器设置为“空闲时间”,请确保计算机处于空闲状态;如果触发器设置为“系统启动时”,请确保计算机已经启动。 - 问题:已创建的任务没有按照预期的频率重复执行。
解决方法:请检查重复间隔设置是否正确。如果重复间隔设置为一天或一周等较长的时间间隔,请确保计算机的系统时间和日期设置正确;如果重复间隔设置为较短的时间间隔(如几分钟),请确保计算机的系统资源充足,不会因为其他原因导致任务无法按时执行。 - 问题:已创建的任务没有按照预期的方式执行。
解决方法:请检查操作设置是否正确。如果操作设置为“启动程序”,请确保指定的程序或脚本路径正确;如果操作设置为其他类型(如发送电子邮件、显示消息等),请确保相关的设置正确。 - 问题:无法查看已创建的任务的历史记录。
解决方法:请检查是否具有查看历史记录的权限。如果没有权限,请联系系统管理员。此外,请注意历史记录可能受到事件日志保留策略的影响,如果事件日志保留策略设置为较短的时间(如几天),则较早的历史记录可能会被删除。
六、参考脚本
bat做为入口,调起其他脚本:
bat:
F:/python38/python.exe git_util.py
python:
def write_add(path,str,encoding='utf-8'):
with open(path, 'a+',encoding=encoding) as file:
file.write(str)
def pull(local_path):
try:
# 切换到指定目录
os.chdir(local_path)
log_str = time_util.print_now() + " 已成功拉取更新\n"
file_util.write_add(r'D:\Users\pengzuo\PycharmProjects\Cmd\cmd\util\git.log', log_str)
# subprocess.run(["git", "pull"], check=True, shell=True)
print(log_str)
except subprocess.CalledProcessError as e:
print(f"拉取更新时出错: {e}")