VBScript编译错误,无法解决

时间:2017-01-04 09:35:21

标签: command-line vbscript compiler-errors

所以我试图将CMD提示作为VBScript运行,因为我不能只丢弃这条CMD线。

Set cmdl = WScript.CreateObject("WScript.Shell")
cmdl.Run "cmd.exe ""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe""--app="https://app.powerbi.com/"""--kiosk""--fullscreen""--user-data-dir=c:/monitor1""

我的困境是每次尝试运行时都会出现以下错误:

  

脚本:Script.vbs
  行:2
  字符:90
  错误:预期结束声明
  代码:800A0401
  来源:Microsoft VBScript编译错误

我试过引用引号,取出引号,移动空格等等,这个让人感到疯狂的事情。有谁看到我的错误可能在哪里?

3 个答案:

答案 0 :(得分:1)

您的命令字符串已损坏。在VBScript中,通过在双引号之间放置一个字符序列来定义字符串:

s = "some string"

如果你想在字符串中使用双引号,你需要通过将它们加倍来逃避它们:

s = "some ""quoted"" string"

此外,您不需要cmd.exe通过Run启动可执行文件,但是在可执行文件的参数之间确实需要空格。

改变这个:

cmdl.Run "cmd.exe ""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe""--app="https://app.powerbi.com/"""--kiosk""--fullscreen""--user-data-dir=c:/monitor1""

进入这个:

cmdl.Run """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"" --app=https://app.powerbi.com/ --kiosk --fullscreen --user-data-dir=c:/monitor1"

答案 1 :(得分:1)

规则是:使用""插入"在VBScript文字中。

中的第一次违规
"cmd.exe ""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe""--app="https://app.powerbi.com/"""--kiosk""--fullscreen""--user-data-dir=c:/monitor1""

--app="https

"cmd.exe ""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"" --app=""https://app.powerbi.com/"" --kiosk --fullscreen --user-data-dir=""c:/monitor1"""

可能是你想要的。

更好(缩放)的方法是使用quote函数和数组作为parts / arguments:

Function qq(s)
  qq = """" & s & """"
End Function

s = Join(Array( _
      "cmd.exe" _
    , qq("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe") _
    , "--app=" & qq("https://app.powerbi.com/") _
    , "--kiosk" _
    , "--fullscreen" _
    , "--user-data-dir=" & qq("c:/monitor1") _
), " ")
WScript.Echo s

输出:

cscript a.vbs
cmd.exe "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --app="https://app.powerbi.com/" --kiosk
 --fullscreen --user-data-dir="c:/monitor1"

答案 2 :(得分:0)

此解决方案基于 @ Ekkehard.Horner

所以,我喜欢他在使用数组的连接函数时的方法。

并且,我在 Windows 7(32位)上尝试了它,它就像魅力一样;)

Function qq(s)
  qq = chr(34) & s & chr(34)
End Function

s = Join(Array( _
      "cmd /c  start chrome" _
    , "--app=" & qq("https://app.powerbi.com/") _
    , "--kiosk" _
    , "--fullscreen" _
    , "--user-data-dir=" & qq("c:/monitor1") _
), " ")
WScript.Echo s
set ws = CreateObject("wscript.shell")
ws.run s,0,false