2012-04-24 16 views
7

Powershellは、コマンドに渡すと空の文字列引数を削除するようです。私はこのコードを持っています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に '名前'のメンバーがあると仮定できます。値が空の文字列であっても、これを引数としてexeに渡すことはできますか?私は成功していない呼び出し演算子を使用してみました。

答えて

7

試みはこれのように、引数の前後に引用符をエスケープその動作がV2でまったく同じになるかどうかはわかりません。

5

二重引用符で囲まれた空の一重引用符文字列を渡してください。逆の場合も同じです。私はそう私はV3でこれをテストした

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" "" 

注:空の文字列を表示したい場合は

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

または

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

私はPS v5で両方のメソッドをテストし、最初のメソッドは動作しませんでしたが、2番目のメソッドは './echoargs $ b.name、 '" "'でした。私の場合、パラメータ間のコンマは必要ではないようです。 – hjoelr

関連する問題