您可以使用cmdlet并通过指定所需的属性名称来按名称获取属性Select-Object
。请注意,这不仅会返回该属性的原始值;相反,您得到的东西仍然像对象一样。
[PS]> $property = (Get-Process)[0] | Select-Object -Property Name
[PS]> $property
Name
----
armsvc
[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject
为了使用该属性的值,即使只有一个属性,您仍然需要确定要使用的属性:
[PS]> $property.Name
armsvc
[PS]> $property -eq "armsvc"
False
[PS]> $property.Name -eq "armsvc"
True
[PS]> $property.Name.GetType().FullName
System.String
根据此处的其他答案,如果要在字符串中使用单个属性,则需要评估表达式(将其放在方括号中)并以美元符号($)作为前缀,以将表达式动态声明为要插入的变量放入字符串:
[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc
相当正确的是,其他人通过推荐cmdlet 的-ExpandProperty
参数来回答此问题Select-Object
。通过返回指定的属性的值,可以绕过某些麻烦的事情,但是您将需要在不同的情况下使用不同的方法。
-ExpandProperty <String>
指定要选择的属性,并指示应尝试扩展该属性
https://technet.microsoft.com/zh-CN/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
电源外壳 变数
select -expand "SomeProp"
如果您想要值。select "SomeProp"
返回一个带有属性“ SomeProp”的自定义对象,然后他又回到了第一步。–