Tôi đã hy vọng rằng ai đó có thể giúp tôi ra như sau:PowerShell: Sự khác nhau giữa 1234 và (1234) là gì?
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)
Các lợi nhuận trên:
MyField : 1234
tôi đã mong đợi, tuy nhiên:
MyField : 1,234.00
Kết quả dự kiến là trả về đúng nếu tôi thêm dấu ngoặc đánh giá quanh 1234:
Write-Output (Get-FormattedNameValuePair -name MyField -value (1234))
Định dạng cũng hoạt động mà không có dấu ngoặc đánh giá nếu được gọi trực tiếp thay vì được bọc trong hàm 'Get-FormattedNameValuePair'.
[string] $name = "MyField"
[object] $value = 1234
Write-Output "$("{0,-24}" -f $name) : $("{0,15:N2}" -f $value)"
Mọi người có thể giải thích hành vi nói trên không?
Cảm ơn Keith, tôi đang sử dụng PS phiên bản 2.0 như được hiển thị bởi $ Host.Version. Tôi nhận được kết quả "MyField: 1234", trong khi tôi đang mong đợi "MyField: 1,234.00". Bạn nhận được kết quả gì? –
@MikeRosenblum Tôi đã có thể repro điều này trên V2 là tốt. Cập nhật câu trả lời của tôi để giải thích những gì đang xảy ra. –
Câu trả lời tuyệt vời Keith, cảm ơn bạn đã dành thời gian để kiểm tra kỹ lưỡng. –