在PowerShell中将字符串添加到计算的输出

时间:2018-09-21 01:27:37

标签: powershell

我正在使用一行PowerShell检查计算机上的RAM,它的工作原理很好,但是我需要在输出中添加一个字符串:

Get-CimInstance -class Win32_PhysicalMemory |
  Measure-Object -Property capacity -Sum |
    % {[Math]::Round(($_.sum / 1GB),2)}

这会根据计算机的内存量产生结果,但是我需要在末尾添加“ GB”,因此输出为16GB,而不仅仅是16GB。

我尝试了各种方法,但没有任何效果。我想我很难理解如何将字符串添加到计算属性的输出中。

2 个答案:

答案 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"

希望有帮助