由于用惯了Linux下面的Cron工具,平时在Windows下面工作却总是不适应Task Schedule,于是自己写了一个Cron for Windows。功能已经基本实现,不过可能有一些小bug。思路很简单,利用线程起一个Timer,然后每分钟去检查一下是不是有符合的规则,添加符合则执行crontab最后的command参数。源码托管在https://github.com/wujiwh/Cron,欢迎各位同学批评指正。 具体核心代码如下:(加到github项目托管)

我把Cron作为了一个Windows Service并且把ServiceInstaller的StartType设置为了Automatic来保证每次重启系统后能自动启动服务。同时serviceProcessInstaller的Account属性设置成LocalSystem来保证服务对于的进程有较高的系统权限。

使用方法很简单,将cron.exe利用.net的installutil.exe安装到系统服务(需要.net4 framework),然后在c:\cron目录中新建一个crontab文件,对照cron说明写一条规则后启动服务,就OK了。服务执行的log文件也在c:\cron目录。这里是我写的一个安装/卸载脚本,想尝试一下Windows版Cron的同学可以直接下载,解压后执行setup.bat来安装服务。服务安装好默认是stop的,需要手动启动,请确保执行前写好你的crontab文件,启动可以在命令行执行sc start cron或者在任务管理器的服务标签右击cron来启动。