VBScript编译错误 - 错误:预期')' - 800A03EE

时间:2018-03-01 09:51:48

标签: vbscript compilation outlook-addin

我制作了一个小型登录脚本,其任务是安装Mimecast Add-in for Outlook

脚本首先检查是否存在插件dll文件,如果是,则采用产品版本。如果版本与我们当前的8.7.4425.0插件匹配,那么它会执行msi的静默安装。如果addin dll不存在,安装也会执行。

我使用VBSEdit来构建我的脚本,这个脚本完全可以从调试器运行。它找到add-in版本并执行msi

但是,当我使用cscript执行脚本或从Windows资源管理器中双击时,我收到编译错误。

出于诊断目的我正在使用/qb切换来查看msi执行。

代码如下。

Dim mimever 
Dim instcmd 
Dim exist 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.shell")
exist = 0
instcmd = "cmd /c start /wait msiexec /i " & Chr(34) & "\\server-01\ict\Software\Mimecast\MSO 7.4\Mimecast for Outlook 7.4.2183.20730 (64 bit).msi" & Chr(34) & " ALLUSERS=1" & " /qb /norestart"

if objFSO.FileExists("C:\Program Files\Mimecast\Mimecast Outlook Add-In\adxloader64.dll") then
    exist = 1
End if

If exist = 1 then
    mimever = objFSO.GetFileVersion("C:\Program Files\Mimecast\Mimecast Outlook Add-In\adxloader64.dll") 
        if mimever = null then 
            mimever = 0
        End if
End if

if mimever <> "8.7.4425.0" Or exist = 0 then
    ObjShell.Run instcmd
End If

Error screenshot

1 个答案:

答案 0 :(得分:0)

修复方法是将instcmd变量行更改为:

instcmd = "cmd /c start """" /wait msiexec /i " & Chr(34) & "\\server-01\ict\Software\Mimecast\MSO 7.4\Mimecast for Outlook 7.4.2183.20730 (64 bit).msi" & Chr(34) & " ALLUSERS=1" & " /qb /norestart"