Code Bye

c++ 怎么解析 cron 表达式成时间序列

如题  用c++ 怎么把cron 表达式 解析成时间序列?
解决方案

100

引用:
Quote: 引用:

crontab命令对应的源代码是公开的。
但是 是Linux下的 本人在Windows 下啊

本人敢拍胸脯保证,Linux下的crontab命令中解析命令行时使用的C代码在Windows下也能用。
题主可能要参考Windows下的命令
schtasks /?
SCHTASKS /parameter [arguments]
描述:
允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任
务。替代 AT.exe。
参数列表:
/Create         创建新计划任务。
/Delete         删除计划任务。
/Query          显示全部计划任务。
/Change         更改计划任务属性。
/Run            立即运行计划任务。
/End            中止当前正在运行的计划任务。
/?              显示帮助消息。
示例:
SCHTASKS
SCHTASKS /?
SCHTASKS /Run /?
SCHTASKS /End /?
SCHTASKS /Create /?
SCHTASKS /Delete /?
SCHTASKS /Query  /?
SCHTASKS /Change /?
schtasks /Create /?
SCHTASKS /Create [/S system [/U username [/P [password]]]]
[/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
[/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
[/RI interval] [ {/ET endtime | /DU duration} [/K] ]
[/SD startdate] [/ED enddate] [/IT] [/Z] [/F]
描述:
允许管理员在本地或远程系统上创建计划任务。
参数列表:
/S           system            指定要连接到的远程系统。假如省略这个
系统参数,默认是本地系统。
/U           username          指定命令执行的用户上下文。
/P           [password]        指定给定用户上下文的密码。假如省略则
提示输入。
/RU          username          指定任务在其下运行的“运行方式”用户
帐户(用户上下文)。对于系统帐户,有效
值是 “”、”NT AUTHORITY\SYSTEM” 或
“SYSTEM”。
/RP          [password]        指定“运行方式”用户的密码。要提示输
入密码,值必须是 “*” 或无。系统帐户
会忽略该密码。
/SC          schedule          指定计划频率。
有效计划任务: MINUTE, HOURLY,
DAILY, WEEKLY, MONTHLY, ONCE,
ONSTART, ONLOGON, ONIDLE.
/MO          modifier          改进计划类型以允许更好地控制计划重复
周期。有效值列于下面“修改者”部分中。
/D           days              指定该周内运行任务的日期。有效值:
MON, TUE,WED, THU, FRI, SAT, SUN
和对 MONTHLY 计划的 1 – 31
(某月中的日期)。通配符“*”指定全部
日期。
/M           months            指定一年内的某月。默认是该月的第一天。
有效值: JAN, FEB, MAR, APR, MAY, JUN,
JUL, AUG, SEP, OCT, NOV, DEC。通配符
“*” 指定全部的月。
/I           idletime          指定运行一个已计划的 ONIDLE 任务之前
要等待的空闲时间。
有效值范围: 1 到 999 分钟。
/TN          taskname          指定唯一识别这个计划任务的名称。
/TR          taskrun           指定在这个计划时间运行的程序的路径
和文件名。
例如: C:\windows\system32\calc.exe
/ST          starttime         指定运行这个任务的开始时间。时间格式
是 HH:mm (24 小时时间) 例如 14:30 为
2:30 PM。默认到当前时间。
/RI          interval          用分钟指定重复间隔。这无法应用于
已计划的类型: MINUTE, HOURLY,
ONSTART, ONLOGON, ONIDLE。
有效范围: 1 – 599940 分钟。
假如指定了 /ET 或 /DU,它会默认到
10 分钟。
/ET          endtime           指定运行任务的结束时间。
时间格式是 HH:mm (24 小时时间)
例如 14:50 为 2:50 PM。这无法运用于
计划类型: ONSTART, ONLOGON, ONIDLE。
/DU          duration          指定运行此任务的持续时间。
时间格式是 HHHH:mm。
这不适用于 /ET 和计划类型: ONSTART,
ONLOGON, ONIDLE。假如指定了 /RI,
那么默认为 1 小时。
/K                             在结束时间或持续时间终止此任务。
这不适用于计划类型: ONSTART,
ONLOGON, ONIDLE。必须指定 /ET
或 /DU。
/SD          startdate         指定第一次运行这个
任务的日期。格式是 yyyy/mm/dd。
默认为当前时间。这不适用于计划
类型: ONCE, ONSTART, ONLOGON,
ONIDLE.
/ED          enddate           指定此任务运行的最后一天的日期。
格式是 yyyy/mm/dd。
这不适用于计划类型: ONCE, ONSTART,
ONLOGON, ONIDLE。
/IT                            /RU 用户在此作业运行时登录才启
用此任务用交互方式运行。
用户登录后此任务才运行。
/Z                             假如此任务没有计划再次运行,
会删除此任务。
/F                             假如指定的任务已经存在,强行
创建此任务并不显示警告。
/?                             显示该帮助消息。
修改者: 按计划类型的 /MO 开关的有效值:
MINUTE:  1 到 1439 分钟。
HOURLY:  1 到 23 小时。
DAILY:   1 到 365 天。
WEEKLY:  1 到 52 周。
ONCE:    无修改者。
ONSTART: 无修改者。
ONLOGON: 无修改者。
ONIDLE:  无修改者。
MONTHLY: 1 到 12,或
FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY。
示例:
==> 在远程机器 “ABC” 上创建计划任务 “doc”,
该机器每小时在 “runasuser” 用户下运行 notepad.exe。
SCHTASKS /Create /S ABC /U user /P password /RU runasuser
/RP runaspassword /SC HOURLY /TN doc /TR notepad
==> 在远程机器 “ABC” 上创建计划任务 “accountant”,
在指定的开始日期和结束日期之间的开始时间和结束时间内,
每隔五分钟运行 calc.exe。
SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE
/MO 5 /TN accountant /TR calc.exe /ST 12:00 /ET 14:00
/SD 2002/12/30 /ED 2002/12/30 /RU runasuser /RP
==> 创建计划任务 “gametime”,在每月的第一个星期天
运行“空当接龙”。
SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN gametime
/TR c:\windows\system32\freecell
==> 在远程机器 “ABC” 创建计划任务 “report”,
每个星期运行 notepad.exe。
SCHTASKS /Create /S ABC /U user /P password /RU runasuser
/RP runaspassword /SC WEEKLY /TN report /TR notepad.exe
==> 在远程机器 “ABC” 创建计划任务 “logtracker”,
每隔五分钟从指定的开始时间到无结束时间,
运行 notepad.exe。将提示输入 /RP
密码。
SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE
/MO 5 /TN logtracker
/TR c:\windows\system32\notepad.exe /ST 18:30
/RU runasuser /RP
==> 创建计划任务 “gaming”,每天从 12:00 点开始到
14:00 点自动结束,运行 freecell.exe。
SCHTASKS /Create /SC HOURLY /TN gaming /TR c:\freecell /ST 12:00
/ET 14:00 /K


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c++ 怎么解析 cron 表达式成时间序列