栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python检查已完成和失败的Task Windows调度程序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python检查已完成和失败的Task Windows调度程序

以下内容使用Task Scheduler API来打印所有已注册任务的基本信息,包括最后的运行时间和结果。

import win32com.clientTASK_ENUM_HIDDEN = 1TASK_STATE = {0: 'Unknown',   1: 'Disabled',   2: 'Queued',   3: 'Ready',   4: 'Running'}scheduler = win32com.client.Dispatch('Schedule.Service')scheduler.Connect()n = 0folders = [scheduler.GetFolder('\')]while folders:    folder = folders.pop(0)    folders += list(folder.GetFolders(0))    tasks = list(folder.GetTasks(TASK_ENUM_HIDDEN))    n += len(tasks)    for task in tasks:        settings = task.Definition.Settings        print('Path       : %s' % task.Path)        print('Hidden     : %s' % settings.Hidden)        print('State      : %s' % TASK_STATE[task.State])        print('Last Run   : %s' % task.LastRunTime)        print('Last Result: %sn' % task.LastTaskResult)print('Listed %d tasks.' % n)

这仅从列表中的根文件夹开始。每次循环都会弹出一个文件夹。推送其所有子文件夹;并列出文件夹中的任务。它一直持续到文件夹列表为空。

COM接口

  • ITaskService
  • ITaskFolder
  • IRegisteredTask
  • ITaskDefinition
  • ITaskSettings

另外,这是一个

walk_tasks
在标准库上建模的生成器
os.walk

import osimport pywintypesimport win32com.clientTASK_ENUM_HIDDEN = 1TASK_STATE = {    0: 'Unknown',    1: 'Disabled',    2: 'Queued',    3: 'Ready',    4: 'Running'}def walk_tasks(top, topdown=True, onerror=None, include_hidden=True,    serverName=None, user=None, domain=None, password=None):    scheduler = win32com.client.Dispatch('Schedule.Service')    scheduler.Connect(serverName, user, domain, password)    if isinstance(top, bytes):        if hasattr(os, 'fsdepre'): top = os.fsdepre(top)        else: top = top.depre('mbcs')    if u'/' in top:        top = top.replace(u'/', u'\')    include_hidden = TASK_ENUM_HIDDEN if include_hidden else 0    try:        top = scheduler.GetFolder(top)    except pywintypes.com_error:        if onerror is not None: onerror(error)        return    for entry in _walk_tasks_internal(top, topdown, onerror, include_hidden):        yield entrydef _walk_tasks_internal(top, topdown, onerror, flags):    try:        folders = list(top.GetFolders(0))        tasks = list(top.GetTasks(flags))    except pywintypes.com_error as error:        if onerror is not None: onerror(error)        return    if not topdown:        for d in folders: for entry in _walk_tasks_internal(d, topdown, onerror, flags):     yield entry    yield top, folders, tasks    if topdown:        for d in folders: for entry in _walk_tasks_internal(d, topdown, onerror, flags):     yield entry

if __name__ == '__main__':    n = 0    for folder, subfolders, tasks in walk_tasks('/'):        n += len(tasks)        for task in tasks: settings = task.Definition.Settings print('Path       : %s' % task.Path) print('Hidden     : %s' % settings.Hidden) print('State      : %s' % TASK_STATE[task.State]) print('Last Run   : %s' % task.LastRunTime) print('Last Result: %sn' % task.LastTaskResult)    print('Listed %d tasks.' % n)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号