我想将输出保存到变量,但它保存的字符比我想要保存的字符多。
我用:
$InstallLocation1 = Get-WmiObject -Class Win32_Product -Filter 'Name like "%FAS%"' | Select InstallLocation
但是我的变量包含:
@{InstallLocation=C:\Program Files\inray\FAS\}
但是我需要的内容是:
C:\Program Files\inray\FAS\
... |Select-Object <propertyName>,...
将创建一个新对象并将属性从输入对象复制到新对象 - 因此您最终会得到一个新对象,该对象恰好有 1 个名为 InstallLocation
的属性。
要仅获取单个属性的值,请使用
ForEach-Object -MemberName
代替:
$InstallLocation1 = Get-WmiObject -Class Win32_Product -Filter 'Name like "%FAS%"' |ForEach-Object -MemberName InstallLocation
或者,您可以(ab)使用
Select-Object
的 -ExpandProperty
参数来实现相同的结果:
$InstallLocation1 = Get-WmiObject -Class Win32_Product -Filter 'Name like "%FAS%"' |Select-Object -ExpandProperty InstallLocation