0

我创建了一个调用批处理文件的 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

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

谢谢你的帮助!

4

2 回答 2

0

Probably being run as a different user in a scheduled task.

Verify that the user has the necessary permissions.

Verify that the problem is not due to an assumed current directory.

Put the following statement as the first line in the bat file and try running both ways (manual and scheduled):

echo.CD=%cd% & pause

Note that the current directory gets change when you 'Run as administrator'. You can resolve that by adding the following line at the top of your program (to set the desired CD before referencing any files/folders).

pushd %~dp0
于 2013-02-26T12:06:31.817 回答
0

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

%SystemRoot%\sysWOW64\cmd.exe

是的,这是正确的!sysWOW64中的CMD.exe是32位版本!

于 2013-02-26T02:14:02.483 回答