2016-02-19 22 views
1

我需要的vbs執行腳本上運行命令VBScript錯誤與長期爭論

我沒有問題,運行的Program.exe此腳本

objShell.Run("%SystemDrive%\temp\program.exe") 

然而該方案可以支持arguement無聲安裝

我上CMD手動運行下面的命令是

 
%SystemDrive%\temp\program.exe /s /v"MS=1.1.1.1 SF= %SystemDrive%\temp\cert.ssl -l*v+! %temp%\install.log IP=False CFG="CFG_GRP" ICG="ICG_GRP" REBOOT=Force /qn"" 

所以我把這個命令的腳本,但得到異常錯誤')'

objShell.Run("%SystemDrive%\temp\program.exe /s /v"MS=1.1.1.1 SF= %SystemDrive%\temp\cert.ssl -l*v+! %temp%\install.log IP=False CFG="CFG_GRP" ICG="ICG_GRP" REBOOT=Force /qn""") 

任何想法?

+0

你需要在字符串'''裏面加引號,無論哪裏有''''''''''''''''。 – Lankymart

回答

0

試試這個

Command = "cmd /c %SystemDrive%\temp\program.exe /s /v""MS=1.1.1.1 SF= %SystemDrive%\temp\cert.ssl -l*v+! %temp%\install.log IP=False CFG=""CFG_GRP"" ICG=""ICG_GRP"" REBOOT=Force /qn""""" 
objShell.Run Command 

objShell.Run "cmd /c %SystemDrive%\temp\program.exe /s /v""MS=1.1.1.1 SF= %SystemDrive%\temp\cert.ssl -l*v+! %temp%\install.log IP=False CFG=""CFG_GRP"" ICG=""ICG_GRP"" REBOOT=Force /qn""""" 

無論哪種方式,將工作的問題是格式不正確的字符串。

因爲他們有被他們""加倍轉義字符串中使用時的報價"表示字符串的開始和結束,否則將VBScript的認爲這是字符串的結束,並拋出一個語法錯誤。

+0

屏幕截圖的錯誤 https://www.evernote.com/l/AATOy-pRz7hNbogjbaz-s4sQI7ZF0W9yJtcB/image.png – Francis

+0

@Francis我已經告訴過您需要做什麼,無論它是一個名爲'Command'的變量,或直接在'objShell.Run()'中調用是無關緊要的。事實上,你可以在'objShell.Run()'中調用'Command'。 – Lankymart

+0

我曾嘗試在後面添加2個報價仍然出錯,如何排查故障? – Francis