import win32com.client
import re
taskname_patt = re.compile(r'<Command>(.+?)</Command>')
execution_patt = re.compile(r'<Arguments>(.+?)</Arguments>')
title_patt = re.compile(r'<URI>(.+?)</URI>')
TASK_ENUM_HIDDEN = 1
TASK_STATE = {0: 'Unknown',
1: 'Disabled',
2: 'Queued',
3: 'Ready',
4: 'Running'}
scheduler = win32com.client.Dispatch('Schedule.Service')
scheduler.Connect()
n = 0
folders = [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:
try:
xmlstring = task.xml
title = title_patt.findall(xmlstring)
taskname = taskname_patt.findall(xmlstring)
execution = execution_patt.findall(xmlstring)
print(title[0], taskname[0], execution[0])
print('=========================')
except:
pass
print('=========================')