Command line VBScript编译错误,无法解决

Command line VBScript编译错误,无法解决,command-line,vbscript,compiler-errors,Command Line,Vbscript,Compiler Errors,所以我尝试以VBScript的形式运行CMD提示符,因为我不能直接删除这一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:/mo

所以我尝试以VBScript的形式运行CMD提示符,因为我不能直接删除这一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编译错误


我试着加引号,去掉引号,移动空格,等等。这该死的东西快把我逼疯了。有人知道我的错误在哪里吗?

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

s = "some string"
如果要在字符串中使用双引号,则需要通过将其加倍来转义:

s = "some ""quoted"" string"
另外,通过
Run
启动可执行文件不需要
cmd.exe
,但需要在可执行文件的参数之间留空格

更改此项:

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"
规则是:在VBScript文本中使用“插入”

你的第一次违规

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

这个

也许是你想要的

更好的(缩放)方法是对部件/参数使用quote函数和数组:

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"

此解决方案基于@Ekkehard.Horner

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

而且,我在我的windows 7(32位)上试用了它,它就像一个charme;)


键入
cmd/?
查看您的错误所在。除了交互式使用之外,cmd需要开关。您“试图运行cmd提示符”是什么意思?启动Chrome不需要cmd。
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"
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