测试环境:

C:/>systeminfo | findstr /c:"OS Name"
OS Name: Microsoft Windows Server 2008 R2 Enterprise

很多人在Windows 2008里面创建任务计划执行bat文件的时候都会遇到这样的问题:任务计划执行之后返回的状态码是0x1而不是正常的0x0

我今天也被这个问题给坑了,几乎花了一天的时间来排错。单独执行bat脚本一切正常,在Windows 2003的任务计划里面执行bat脚本也没有问题,但是只要放到Windows 2008的任务计划里面就不行。在国内、国外的网站上一通搜索,终于凑齐了所有的注意事项。步骤总结如下:

1、确认要执行任务计划的用户的密码没有过期,条件允许的情况下可以设置成密码永不过期,以免不必要的麻烦。

中文系统是 密码永不过期选项

2、打开任务管理器,右键单击 Task Scheduler Library,选择 Create Task,这里千万不能选择 Create Basic Task

3、在 General 选项卡中选择 Run whether user is logged on or not,并勾选 Run with highest privileges,然后从下拉列表里面选择 Windows Server 2003,这里千万不能选择 Windows Server 2008

中文系统对应如下图

4、Triggers 选项卡中没有什么特别的地方,按照自己的需求设置执行时间就行了。

5、Actions 选项卡中,Program/script 输入框中填写脚本名称,这里千万不要包含路径。在 Start in 输入框中填写脚本所在的路径,这里千万不要加引号。

6、在bat脚本的结尾添加一行:

点击(此处)折叠或打开

exit /b 0

不显式指定退出码的话,任务计划会认为脚本执行失败了。

window server 2012之前的版本执行计划任务不用设置路径

window server 2012之后的版本执行计划任务要设置路径
批处理程序直接双击运行正常,但是放入windows定时任务运行时缺报错误代码0x1

报错原因 :程序和脚本中的批处理脚本带目录结构,但是起始于那里没有配置批处理脚本所在目录的路径