miałem nadzieję, że ktoś może mi pomóc z następujących:PowerShell: Jaka jest różnica między 1234 a (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)
Powyższe zwrotów:
MyField : 1234
Spodziewałem się jednak:
MyField : 1,234.00
Oczekiwany wynik jest Poprawnie zwrócony, jeśli dodam nawiasy oceny wokół 1234:
Write-Output (Get-FormattedNameValuePair -name MyField -value (1234))
Formatowanie działa również bez nawiasów oceny, jeśli zostanie wywołane bezpośrednio, zamiast zapakowane w funkcję "Get-FormattedNameValuePair".
[string] $name = "MyField"
[object] $value = 1234
Write-Output "$("{0,-24}" -f $name) : $("{0,15:N2}" -f $value)"
Czy ktoś może wyjaśnić powyższe zachowanie?
Dzięki Keith, jestem na PS w wersji 2.0, jak pokazuje $ Host.Version. Otrzymałem wynik "MyField: 1234", podczas gdy oczekiwałem "MyField: 1,234.00". Jaki masz wynik? –
@MikeRosenblum Udało mi się również zaimplementować to na V2. Zaktualizowano moją odpowiedź, aby wyjaśnić, co się dzieje. –
Znakomita odpowiedź Keith, dzięki za poświęcenie czasu, aby to dokładnie sprawdzić. –