Windows Server 2008 R2中计划任务引用批处理失败的问题分析
用 windows 的 bat 写了一个简单的备份的批处理。然后放在Windows Server 2008 R2的计划任务中调用。之前在 Windows XP 测试过,没有问题。然后隔天再连过去看,咦,没有生成打包备份文件啊…但是任务管理器里边显示”操作成功完成。(0x0)”字样。
于是在用 Google 查了下。网上还真不少这样的问题。大家总结不外乎以下几点:
1) 任务的常规选项里边,要把”不存储密码(P)。该任务将只有访问本地计算机资源的权限。”这个打上钩;
2) 任务的常规选项里边,要把”使用最高权限运行(I)”这个打上钩;
3) 任务的操作选项里边,要把”起始于(可选)(T):”这个框的内容填上;
4) 调用的程序及的路径”起始于(可选)(T):”这个框的内容不要使用引号;
5) 调用的程序的路径中不要有空格。
我挨个儿试了。最后总结第5条有效。只要不使用空格就可以了。其它的可以忽略不计。好简单的问题,困扰我一段时间了都。做个笔记…
Edit 2017-01-18:
最近做了一个关于备份数据并移动到共享文件夹的批处理,在命令行中怎么做都没问题,但到计划任务中总是不执行最后相关共享文件夹的操作。后来灵机一动,把要执行的 bat 文件生成一个快捷方式,然后在计划任务中引用这个快捷方式,然后再执行,就 OK 了。
最后总结第5条有效。只要不使用空格就可以了。
这个还是不行啊,这。。。
把”不存储密码(P)。该任务将只有访问本地计算机资源的权限。”这个打上钩;这个选项打上勾之后,还能执行下载任务吗,只能访问本地资源,能写入吗?
大佬求告知
有试过计划任务中引用快捷方式吗?
能否下载、写入本地资源,感觉应该是执行计划任务的用户权限的问题吧。
我是计划任务中执行 git commit ;git push 操作,双击运行.bat可以,但通过计划任务都是commit成功了,但是push不过去。
建议在 bat 中引用命令的时候用全路径,其次试试把 bat 生成快捷方式,再用计划任务调用。
调用路径中最好不要有空格,如果有,就用引号包起来。
调用肯定调用到了,因为commit成功了,就是push不成功。
建议查下日志,看下有没有 push 不成功的提示。
大佬知道在哪看这个定时任务 执行bat的日志么??? 我的执行的时候dos窗口是不打开的。
可以在 bat 中用 echo 命令 >> result.log 来收集运行记录,并用来确定 git push 命令有没有被计划任务调用。
如果没有被调用,就看下 result.log 里面有没有蛛丝马迹。
如果被调用了,但不成功,就去后台查日志。