所以我试图将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编译错误
我试过引用引号,取出引号,移动空格等等,这个让人感到疯狂的事情。有谁看到我的错误可能在哪里?
答案 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