[使用ISE]
我有:'$($udvTest | Select ProcessName -Last 1)'
,其中$udvTest
包含5个进程,这些成员来自Get-Process
。
我得到以下3行:
ProcessName
-----------
svchost
但是我只希望将字符串“ svchost”作为输出(例如用于进一步处理)。我忽略了PS提出的这个小小的支持似乎太可笑了吗?
答案 0 :(得分:1)
(Get-Process | Select-Object -Last 1).ProcessName
可以解决问题,或者举个例子:
$(($udvTest | Select -Last 1).ProcessName)
答案 1 :(得分:0)
纯Powershell方式如下:
Get-Process | Select-Object -ExpandProperty ProcessName -Last 1
或对于您的特定示例:
$udvTest | Select-Object -ExpandProperty ProcessName -Last 1
答案 2 :(得分:0)
“ PS看起来太可怕了”
实际上,您看到一个信息表这一事实暗示着有关PowerShell的最好的事情之一:对象。这些使您的生活比直接文本操作容易得多。
无论如何,一种获取所需信息的方法是:
$udvTest[-1].ProcessName
由于$udvTest
是一个数组,因此您可以对其进行索引以查找所需的项目。如果您提供一个负索引,PowerShell将从头到尾进行计数,因此[-1]
表示采用最后一项。
.ProcessName
是您正在处理对象的另一个指示器,它将为您获取ProcessName属性的值。
答案 3 :(得分:0)
非常感谢!现在,我看到我必须给属性“ ProcessName”以获取其纯值。最好!