积极答复者
WINDOWS SERVER 2003 scheduled task运行bat问题

问题
-
我编写了一个BAT程序,代码如下
@echo off
rem 开发代码备份 每天凌晨2:00执行
echo %date% %time:~0,8% START>>log.txt
for /f "tokens=2" %%I in ('echo %date% ^|find " "') do set week=%%I
if exist "Z:\CodeBackup\%week%backup" rd /S /Q "Z:\CodeBackup\%week%backup"
if errorlevel 0 echo %date% %time:~0,8% 删除%week%备份成功>>log.txt
if not errorlevel 0 echo %date% %time:~0,8% 删除%week%备份失败>>log.txt
xcopy d:\Repositories "\\10.10.31.111\d$\CodeBackup\%week%backup\SVN" /I/Y/E
xcopy d:\Team "\\10.10.31.111\d$\CodeBackup\%week%backup\Team" /I/Y/E
if errorlevel 0 echo %date% %time:~0,8% 备份成功>>log.txt
echo %date% %time:~0,8% END>>log.txt然后新建了一个计划任务每天运行这个bat,现在的情况是,计划任务result为0,所有echo代码运行正常,但是rd,xcopy完全没有执行,像略过了一样,照理3分钟运行完的bat, 一秒就完成了,在运行的那一秒内也不会跳黑框,像静默运行。但是我鼠标双击此程序运行就有效。我试过换台服务器修改代码后运行此脚本也无效,试过编译此BAT作为EXE运行也无效,im going crazy! 只能来求助了,谢谢!
P.S. :Z盘已映射。
- 已移动 Alexis ZhangMVP 2012年12月5日 22:02 与主题更相符。 (发件人:一般性问题讨论区)
2012年12月5日 5:53
答案
全部回复
-
你的批处理文件内容没有问题,以任务计划方式运行出现非预期的效果,可能与任务计划运行批处理的用户身份有关。你在设置任务计划时有没有指定运行此任务的用户身份?如果当前用户帐户是管理员帐户,请在设置任务计划时将任务指定为另一个管理员帐户并输入相应密码确认,然后再试试。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "蓝的"然后新建了一个计划任务每天运行这个bat,现在的情况是,计划任务result为0,所有echo代码运行正常,但是rd,xcopy完全没有执行,像略过了一样,照理3分钟运行完的bat, 一秒就完成了,在运行的那一秒内也不会跳黑框,
- 已建议为答案 Alexis ZhangMVP 2012年12月8日 4:19
2012年12月5日 22:27 -
请问对之前的回复有疑问吗?如果运行任务计划的是任意自建的管理员帐户,请尝试设置为以 Administrator 运行此任务;如果运行任务的就是Administrator,可以随便新建一个临时的管理员帐户运行此任务,看看有没有问题?--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "Alexis Zhang"你的批处理文件内容没有问题,以任务计划方式运行出现非预期的效果,可能与任务计划运行批处理的用户身份有关。你在设置任务计划时有没有指定运行此任务的用户身份?如果当前用户帐户是管理员帐户,2012年12月9日 22:03
-
请问对之前的回复有疑问吗?如果运行任务计划的是任意自建的管理员帐户,请尝试设置为以 Administrator 运行此任务;如果运行任务的就是Administrator,可以随便新建一个临时的管理员帐户运行此任务,看看有没有问题?--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "Alexis Zhang"你的批处理文件内容没有问题,以任务计划方式运行出现非预期的效果,可能与任务计划运行批处理的用户身份有关。你在设置任务计划时有没有指定运行此任务的用户身份?如果当前用户帐户是管理员帐户,2012年12月10日 2:10
-
我的意思是说,当你在任务计划中添加新任务时,在添加向导中有个步骤是指定运行此任务的用户身份,并需要输入两次密码确认。尝试把这个运行任务的身份设置为一个不同的管理员帐户,看看行不行。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "蓝的"感谢版主关心,我尝试过新建另外的账户,加入到Administrators组后运行,因为本来运行账户就是Administrator,仍然无果。我觉得可能是脚本问题,因为我尝试过把这个脚本放到其他服务器在正常跑scheduled2012年12月10日 22:16
-
全部可以手动访问,而且用鼠标双击脚本的方式运行脚本也都没有问题,只有用scheduled job方式运行的时候无效。
以下是net use
Status Local Remote Network
-----------------------------------------------------------------------------
OK Z: \\10.10.31.111\d$ Microsoft Windows Network
The command completed successfully.
本帖回复Alexis Zhang
脚本内的 $IPC 或映射可以在运行脚本之前手动单独访问么?
2012年12月11日 2:37 -
我找到一篇 KB951246,是说如果批处理中含有较多的引号时可能无法被任务计划正确识别。不过这是只适用于 Windows Server 2008 的。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "蓝的"全部可以手动访问,而且用鼠标双击脚本的方式运行脚本也都没有问题,只有用scheduled job方式运行的时候无效。以下是net use2012年12月11日 22:06
-
建议再试一下把批处理转换为其它可执行程序的格式试试看。有些转换工具可以将批处理文件转换为可执行文件或脚本,试试转换格式后用任务计划运行有没有问题?--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "蓝的"全部可以手动访问,而且用鼠标双击脚本的方式运行脚本也都没有问题,只有用scheduled job方式运行的时候无效。以下是net use2012年12月14日 22:01
-
还有另外一个方法请试一下,为这个批处理文件建立快捷方式,然后修改快捷方式属性,在“起始位置”一栏添加需要访问的 $IPC 或映射地址,然后将快捷方式添加为任务计划。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "Alexis Zhang"建议再试一下把批处理转换为其它可执行程序的格式试试看。有些?还ぞ呖梢越砦募晃芍葱形募蚪疟荆允宰桓袷胶笥萌挝窦苹诵杏忻挥形侍猓?2012年12月15日 22:12
-
建议的这些方法都不行吗?如果都不行就遗憾了,可能是任务计划对 $IPC 映射地址的识别能力靠不住。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "蓝的"感谢版主从开贴以来的悉心回复,我决定还是把IPC和映射改成本地算了。。。实在是搞不定,神马方法都用上了,感谢版主。2012年12月17日 21:39
-
长时间连续显示的命令提示符是需要单独开启的,通过运行命令行工具、用于显示运行状态的命令提示符窗口在命令结束后自动关闭。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "蓝的"版主你好,我再问一个问题,如何让我的脚本在scheduled job run时可以弹出cmd窗口,我现在的脚本run的时候都只是显示running状态而没有cmd对话框,还是这本来就不可实现?谢谢2012年12月19日 21:53
-
如果希望执行一个命令后,命令提示符窗口不关闭,可以使用 CMD.EXE 的 /K 参数,后面接要执行的命令。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "蓝的"版主你好,我再问一个问题,如何让我的脚本在scheduled job run时可以弹出cmd窗口,我现在的脚本run的时候都只是显示running状态而没有cmd?曰翱颍故钦獗纠淳筒豢墒迪郑啃恍?2012年12月19日 21:55
-
是把这行加在批处理最前面了吗?这么说还是运行的用户权限问题。看来为任务计划设置运行权限还不足以覆盖执行批处理时访问映射盘的权限。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "蓝的"这个问题被我一个同事解决了,他只加了一句。net use z: \\10.10.31.111\d$ "password" /user:"Administrator"2012年12月26日 22:25