07/02/14 21:45:33 BFGnaiNb
プレフィックスエスケープではなくエンコードエスケープすれば良いのでは?
可逆で有ればなんでも良いわけだが、全体変換ではなく部分変換なら実態参照がいいかも。単純にやるなら
実行:cscript example.vbs ""ARG ARG""
変換:WScript.Echo Replace(WScript.Arguments(0), """, """")
更に"を&"でエスケープ出来るようにするなら、組み込み関数のReplaceではなく
正規表現で「s/(?<!&)"/"/g」だな。但しVBScript.RegExpでは後読み「(?<!…)」が使えないので
VBScript.RegExpでやるとすれば「s/(^|[^&])"/$1"/g」って感じかな。
引数の中に'が使われないとするなら
実行:cscript example.vbs "''ARG ARG''"
変換:WScript.Echo Replace(WScript.Arguments(0), "''", """")
でもいいし。
ただ、WshShellのRunなどで使うだけなら、普通に"ARG ARG"を渡して、
スペースが含まれてたら""で囲う処理を用意した方が良いと思うけど。