-param
次のコマンドラインの値の引用符を正しくエスケープするにはどうすればよいですか?
$cmd="\\server\toto.exe -batch=B -param="sort1;parmtxt='Security ID=1234'""
Invoke-Expression $cmd
これはもちろん失敗します。エスケープ文字 ` を使用して引用符 (一重および二重) をエスケープしようとし、さまざまな組み合わせを行いましたが、何も機能していません。
-param
次のコマンドラインの値の引用符を正しくエスケープするにはどうすればよいですか?
$cmd="\\server\toto.exe -batch=B -param="sort1;parmtxt='Security ID=1234'""
Invoke-Expression $cmd
これはもちろん失敗します。エスケープ文字 ` を使用して引用符 (一重および二重) をエスケープしようとし、さまざまな組み合わせを行いましたが、何も機能していません。
Powershell 5 では、バッククォート (`) を使用して二重引用符をエスケープできます。ただし、二重引用符をエスケープして提供する必要がある場合もあります。これは、バックスラッシュ + バッククォート (\`) で実行できます。たとえば、このcurl呼び出しでは:
C:\Windows\System32\curl.exe -s -k -H "Content-Type: application/json" -XPOST localhost:9200/index_name/inded_type -d"{\`"velocity\`":3.14}"