2012-07-12 27 views
0

我想通過一個代碼片段作爲命令行參數傳遞給在WinXP上運行的程序。 我一直無法將整個代碼片段作爲一個參數傳遞。 它被SPACE和QUOTE字符拆分(如預期的那樣)。 引用整個事情,與QUOTE逃逸QUOTE字符,斜線或CARAT也失敗了......VBS呼籲CMD與參數中的報價

Const TheCode = "main(""Literal String Argument"", 123, true)" 
Set oShell = WScript.CreateObject ("WScript.Shell") 
oShell.Run """c:\Folder with space\ArgTest.vbs"" """ & TheCode & """" 

我運行下面的VBS腳本呼應的參數回試什麼是收到。

ArgTest.vbs:

Dim ArgumentIndex 
For ArgumentIndex = 0 to Wscript.Arguments.Count - 1 
    Call Msgbox(Wscript.Arguments(ArgumentIndex), vbOKOnly+vbInformation, "Argument " & ArgumentIndex) 
Next 

編輯: 事實證明,這是高新區走出引號VBS腳本回聲。使用QUOTE來轉義。

回答

0

在Windows中沒有用於轉義引號的標準。這完全取決於應用程序開發人員應該如何逃脫引號的自由裁量權。如果你沒有爲你的應用程序文件,說明如何做到這一點,那麼你將要發現它在自己的(假設應用程序甚至支持轉義引號)

這聽起來像你試圖反斜槓:

Const TheCode = "main(\""Literal String Argument\"", 123, true)" 

你也說你試圖插入符號:

Const TheCode = "main(^""Literal String Argument^"", 123, true)" 

您是否嘗試過增加了一倍引號?

Const TheCode = "main(""""Literal String Argument"""", 123, true)" 
+0

我正在測試第二個vbs腳本(請參閱編輯過的帖子)。我只是嘗試編寫一個簡單的exe來回應參數。我用它運行它,雙引號工作。我想vbs會將引號從傳遞給它的參數中剝離出來。謝謝 – Adamarla 2012-07-13 06:48:30