在Windows 2008R2中使用任务计划程序运行时,不会从VBS文件中调用批处理文件

时间:2013-02-25 23:39:56

标签: vbscript batch-file scheduled-tasks

我创建了一个调用批处理文件的vbs文件,该文件在手动运行时效果很好。 但是,当我从计划任务中运行相同的vbs脚本时,vbs完成且没有错误,但似乎没有调用批处理文件,因为它没有负责任何操作。

我已确保计划任务在我的管理员帐户下运行。我在旧服务器上运行相同的设备有很多经验,但我最近从2003年迁移到了新的2008 R2。

以下是不执行的行:

wshell.run "%comspec% /c ""C:\My Scripts\ForAdministration\AddSitesScripts\AddSite.bat"" " & DomainName & " " & WebsiteID & " " & DomainName20 & " " & Path & " " & HasStats & " " & NewAppPool & " " & 1 & " " & 1 & " " & 1, 0, True

我将所有变量记录到文本文件中,它们很好。正如我所说,手动触发时运行正常。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您的2008 R2计算机是64位系统,%comspec%指定64位版本的CMD.exe。 很可能你想使用32位版本的CMD.exe(是的,有两个!)。 将%comspec%更改为

%SystemRoot%\sysWOW64\cmd.exe

是的......这是对的! sysWOW64中的CMD.exe是32位版本!

答案 1 :(得分:0)

可能在计划任务中以其他用户身份运行。

验证用户是否具有必要的权限。

验证问题不是由假定的当前目录引起的。

将以下语句作为bat文件的第一行,并尝试双向运行(手动和预定):

echo.CD=%cd% & pause

请注意,当您以管理员身份运行时,当前目录会发生变化。您可以通过在程序顶部添加以下行来解决此问题(在引用任何文件/文件夹之前设置所需的CD)。

pushd %~dp0