私は誰かが次のように私を助けることができることを期待していた:PowerShell:1234と(1234)の違いは何ですか?
Function Get-FormattedNameValuePair([string] $name, [object] $value)
{
return "$("{0,-24}" -f $name) : $("{0,15:N2}" -f $value)"
}
Write-Output (Get-FormattedNameValuePair -name MyField -value 1234)
上記リターン:
MyField : 1234
を私はしかし、期待していた:
MyField : 1,234.00
期待される結果があります私が1234の周りに評価括弧を追加すると、correcly返されます:
Write-Output (Get-FormattedNameValuePair -name MyField -value (1234))
'Get-FormattedNameValuePair'関数でラップする代わりに、直接呼び出された場合でも、評価括弧なしでフォーマットが機能します。
[string] $name = "MyField"
[object] $value = 1234
Write-Output "$("{0,-24}" -f $name) : $("{0,15:N2}" -f $value)"
誰でも上記の動作を説明できますか?
ありがとうKeith、私は$ Host.Versionで示されているように、PSバージョン2.0です。結果は「MyField:1234」、私は「MyField:1,234.00」を期待していました。あなたはどんな結果を得ますか? –
@MikeRosenblum私はV2でもこれを再現することができました。何が起こっているのかを説明するために私の答えを更新しました。 –
すばらしい答えキース、これを徹底的にチェックする時間を入れてくれてありがとう。 –