各言語には独自のエスケープ文字があります。偶然かVB/VBSでは二重引用符です。また、偶然かどうかに関係なく、リテラル文字列には二重引用符のみを埋め込むことができます。たとえば、タブなどの他の特殊文字を埋め込むことはできません。
ただし、VB/VBS エスケープ文字を使用すると、コーディングが簡単になります。
str = """D:\path\to\xyz.exe"" ""arg 1"" ""arg 2"""
WScript.Echo str ' "D:\path\to\xyz.exe" "arg 1" "arg 2"
str = Chr(34) & "D:\path\to\xyz.exe" & Chr(34) & " " _
& Chr(34) & "arg 1" & Chr(34) & " " & Chr(34) & "arg 2" & Chr(34)
WScript.Echo str ' "D:\path\to\xyz.exe" "arg 1" "arg 2"
str = Join(Array("", "D:\path\to\xyz.exe", " ", "arg 1", " ", "arg 2", ""), Chr(34))
WScript.Echo str ' "D:\path\to\xyz.exe" "arg 1" "arg 2"
しかし、個人的にReplace
は、コードが読みやすくなるため、使用することを好みます。
str = Replace("'D:\path\to\xyz.exe' 'arg 1' 'arg 2'", Chr(39), Chr(34))
WScript.Echo str ' "D:\path\to\xyz.exe" "arg 1" "arg 2"
Replace
(都合がよければ) と残りの特殊文字を使用できます。
str = Replace(Replace("A|B|C!1|2|3", "!", vbNewLine), "|", vbTab)
WScript.Echo str
'A B C
'1 2 3