WinXPで実行されているプログラムにコマンドライン引数としてコードの断片を渡そうとしています。コードスニピット全体を1つの引数として渡すことができませんでした。SPACE文字とQUOTE文字で分割されます(予想どおり)。すべてを引用し、QUOTE、SLASH、またはCARATでQUOTE文字をエスケープすることも失敗します...
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
編集:QUOTESを規定するのはVBSエコースクリプトであることがわかりました。QUOTEを使用してエスケープします。