Tenía la esperanza de que alguien me podría ayudar con las siguientes:PowerShell: ¿Cuál es la diferencia entre 1234 y (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)
Los rendimientos superiores:
MyField : 1234
que esperaba, sin embargo:
MyField : 1,234.00
El resultado esperado es Correctamente devuelto si agrego corchetes de evaluación alrededor del 1234:
Write-Output (Get-FormattedNameValuePair -name MyField -value (1234))
El formato también funciona sin los soportes de evaluación si es llamado directamente en lugar de envuelta dentro de la función 'Get-FormattedNameValuePair'.
[string] $name = "MyField"
[object] $value = 1234
Write-Output "$("{0,-24}" -f $name) : $("{0,15:N2}" -f $value)"
¿Alguien puede explicar el comportamiento anterior?
Gracias Keith, estoy en la versión 2.0 de PS como se muestra en $ Host.Version. Obtengo el resultado "MyField: 1234", mientras esperaba "MyField: 1,234.00". ¿Qué resultado obtienes? –
@MikeRosenblum También pude reproducir esto en V2. Actualicé mi respuesta para explicar lo que está pasando. –
Magnífica respuesta Keith, gracias por dedicar el tiempo para comprobar esto tan a fondo. –