【发布时间】:2012-09-28 16:18:40
【问题描述】:
我希望有人可以帮助我解决以下问题:
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 周围添加评估括号,则会正确返回预期结果:
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)"
谁能解释上述行为?
【问题讨论】:
标签: powershell casting string-formatting evaluation