PowerShell.exe -command "スクリプト" で引用符をエスケープする。
PowerShell "スクリプト"で、PowerShellのone linerがバッチファイル内に書けます。
ただ、PowerShellスクリプトをそのまま"スクリプト"内に書くと、引用符が悪さします。
エスケープしようにも、簡単には行きません。
PowerShell.exeのエスケープ法は、\"(\と1個の")または"""(3個の")ですが、cmd.exeのエスケープ法は""(偶数個の")なので、合いません。
例えば、"a;b"という文字列は、
PowerShell "write-host \"a;b\";"
PowerShell "write-host """a;b""";"
で、うまく行きますが、"a<b"という文字列は、
PowerShell "write-host \"a<b\";"
PowerShell "write-host """a<b""";"
で、失敗します。
<>|&などのcmd.exeの制御文字は、奇数個目の"~偶数個目の"でエスケープされ、偶数個目の"~奇数個目の"でエスケープされません。
« バッチファイルで、「管理者として実行」されているか?を判定する。 | トップページ | PowerShell.exe -command "スクリプト" で引用符をエスケープする。(その2) »