将字符串连接到 Get-WmiObject table 中的整数 - PowerShell
Concatenate string to integer inside of Get-WmiObject table - PowerShell
我想将“GB”添加到“Size”的每个实例,以便每个输出显示“8GB”。我不确定如何将字符串添加或连接到 table...
中的整数
我试过简单地添加 +"GB"
,将“GB”分配给变量然后添加 + $GB
。但是回来Select-Object : A positional parameter cannot be found that accepts argument 'System.Object[]'.
输入:
$RAM = Get-WmiObject Win32_PhysicalMemory -ComputerName $Computer |
select DeviceLocator,Manufacturer,PartNumber, @{n="Size";e={[math]::truncate($_.Capacity / 1073741824)}},Speed | FT -AutoSize
Write-Output $RAM
输出:
DeviceLocator Manufacturer PartNumber Size Speed
------------- ------------ ---------- ---- -----
DIMM1 000000000000 8 1600
DIMM2 000000000000 8 1600
DIMM3 000000000000 8 1600
DIMM4 000000000000 8 1600
你有很多选择:
@{n="Size";e={'{0}GB' -f ($_.Capacity / 1Gb)}}
@{n="Size";e={"$($_.Capacity / 1Gb)GB"}}
@{n="Size";e={$($_.Capacity / 1Gb).ToString()+'GB'}}
注意这里需要按照 在他的评论中的建议调用 .ToString()
方法,否则你最终会得到一个空的 属性 甚至更糟:
PS \> 1+'a'
Cannot convert value "a" to type "System.Int32". Error: "Input string was not in a correct format."
- 将
[string]
转换为操作也适用于此处:
@{n="Size";e={[string]($_.Capacity / 1Gb)+'GB'}}
- 使用
-join
运算符,对于这个用例来说非常不正统但有效
@{n="Size";e={-join (($_.Capacity / 1Gb), 'GB')}}
我想将“GB”添加到“Size”的每个实例,以便每个输出显示“8GB”。我不确定如何将字符串添加或连接到 table...
中的整数我试过简单地添加 +"GB"
,将“GB”分配给变量然后添加 + $GB
。但是回来Select-Object : A positional parameter cannot be found that accepts argument 'System.Object[]'.
输入:
$RAM = Get-WmiObject Win32_PhysicalMemory -ComputerName $Computer |
select DeviceLocator,Manufacturer,PartNumber, @{n="Size";e={[math]::truncate($_.Capacity / 1073741824)}},Speed | FT -AutoSize
Write-Output $RAM
输出:
DeviceLocator Manufacturer PartNumber Size Speed
------------- ------------ ---------- ---- -----
DIMM1 000000000000 8 1600
DIMM2 000000000000 8 1600
DIMM3 000000000000 8 1600
DIMM4 000000000000 8 1600
你有很多选择:
@{n="Size";e={'{0}GB' -f ($_.Capacity / 1Gb)}}
@{n="Size";e={"$($_.Capacity / 1Gb)GB"}}
@{n="Size";e={$($_.Capacity / 1Gb).ToString()+'GB'}}
注意这里需要按照 .ToString()
方法,否则你最终会得到一个空的 属性 甚至更糟:
PS \> 1+'a'
Cannot convert value "a" to type "System.Int32". Error: "Input string was not in a correct format."
- 将
[string]
转换为操作也适用于此处:
@{n="Size";e={[string]($_.Capacity / 1Gb)+'GB'}}
- 使用
-join
运算符,对于这个用例来说非常不正统但有效
@{n="Size";e={-join (($_.Capacity / 1Gb), 'GB')}}