18

Powershell は、コマンドに渡されたときに空の文字列引数をドロップするようです。私はこのコードを持っています

PS D:\> $b.name = "foo bar"
PS D:\> ./echoargs $b.name
Arg 0 is D:\echoargs.exe
Arg 1 is foo bar
PS D:\> $b.name = ""
PS D:\> ./echoargs $b.name
Arg 0 is D:\echoargs.exe

$b には「name」メンバーがあると想定できます。値が空の文字列であっても、これを引数としてexeに渡すにはどうすればよいですか。call 演算子を使用してみましたが、成功しませんでした。

4

3 に答える 3

11

空の文字列を表示したい場合は、次のように引数をエスケープ引用符で囲みます。

PS> $b = [psobject]@{name = ''}
PS> echoargs `"$($b.Name)`"
Arg 0 is <>

Command line:
"C:\Users\Keith\Pscx\Trunk\Src\Pscx\bin\Release\Apps\EchoArgs.exe"  ""

V3 でこれをテストしたので、V2 で動作がまったく同じになるかどうかはわかりません。

于 2012-04-24T15:51:15.790 に答える
10

二重引用符で囲まれた空の単一引用符文字列を渡すか、またはその逆を試みてください。

./echoargs $b.name, "''"

また

./echoargs $b.name, '""'
于 2012-04-24T11:49:00.087 に答える