(a) Используйте расширяемую строку (интерполяция строки):
Get-CimInstance -class Win32_PhysicalMemory |
Measure-Object -Property capacity -Sum |
% { "$([Math]::Round($_.sum / 1GB,2))GB" }
Вы можете использовать $(...)
, оператор подвыражения, для встраивания выражений и даже нескольких операторов встрока в двойных кавычках.
(b) Либо используйте форматирование строки .NET с помощью оператора -f
:
Get-CimInstance -class Win32_PhysicalMemory |
Measure-Object -Property capacity -Sum |
% { '{0:G2}GB' -f ($_.sum / 1GB) }
Формат строки наLHS должен содержать заполнитель для каждого аргумента RHS, начиная с {0}
;При желании инструкции форматирования могут быть встроены в каждый заполнитель, который в данном случае выполняет желаемое округление и отображает до 2 десятичных знаков (G2
).
Оператор -f
использует .NET * String.Format()
метод за кадром.
Важно :
Метод (a) всегда использует инвариант культура, в которой .
является десятичной отметкой.
Метод (b) является чувствительным к культуре , поэтому он использует текущий десятичный знак культуры (используйте Get-Culture
для определения текущей культуры).