我正在使用一行PowerShell检查计算机上的RAM,它的工作原理很好,但是我需要在输出中添加一个字符串:
Get-CimInstance -class Win32_PhysicalMemory |
Measure-Object -Property capacity -Sum |
% {[Math]::Round(($_.sum / 1GB),2)}
这会根据计算机的内存量产生结果,但是我需要在末尾添加“ GB”,因此输出为16GB,而不仅仅是16GB。
我尝试了各种方法,但没有任何效果。我想我很难理解如何将字符串添加到计算属性的输出中。
答案 0 :(得分:1)
(a)使用可扩展字符串(字符串插值):
Get-CimInstance -class Win32_PhysicalMemory |
Measure-Object -Property capacity -Sum |
% { "$([Math]::Round($_.sum / 1GB,2))GB" }
您可以使用子表达式运算符$(...)
将表达式甚至多个语句嵌入到双引号中。
(b)或者,通过 -f
运算符使用.NET字符串格式:
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
确定当前文化)
答案 1 :(得分:0)
您可以使用.ToString()方法,然后添加GB
(Get-CimInstance -class Win32_PhysicalMemory | Measure-Object -Property capacity -Sum | % {[Math]::Round(($_.sum / 1GB),2)}).ToString() + " GB"
希望有帮助