99

-param次のコマンドラインの値の引用符を正しくエスケープするにはどうすればよいですか?

$cmd="\\server\toto.exe -batch=B -param="sort1;parmtxt='Security ID=1234'""
Invoke-Expression $cmd 

これはもちろん失敗します。エスケープ文字 ` を使用して引用符 (一重および二重) をエスケープしようとし、さまざまな組み合わせを行いましたが、何も機能していません。

4

4 に答える 4

1

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}"
于 2020-12-08T09:33:08.363 に答える