【问题标题】:Powershell variable's outputPowershell 变量的输出
【发布时间】:2019-01-31 08:14:23
【问题描述】:
[使用 ISE]
我有:'$($udvTest | Select ProcessName -Last 1)' 其中$udvTest 包含 5 个进程作为来自Get-Process 的成员。
我得到以下 3 行:
ProcessName
-----------
svchost
但我只想要字符串“svchost”作为输出(例如,用于进一步处理)。是我忽略了什么,向 PS 索要的这个小忙看起来如此可怕?
【问题讨论】:
标签:
powershell
variables
header
output
【解决方案1】:
(Get-Process | Select-Object -Last 1).ProcessName
会做的伎俩或你的例子:
$(($udvTest | Select -Last 1).ProcessName)
【解决方案2】:
纯粹的 Powershell 方式是这样的:
Get-Process | Select-Object -ExpandProperty ProcessName -Last 1
或者对于您的特定示例:
$udvTest | Select-Object -ExpandProperty ProcessName -Last 1
【解决方案3】:
“PS 看起来好可怕”
实际上,您看到信息表这一事实暗示了 PowerShell 的一大优点:对象。与直接操作文本相比,这些功能让您的生活更加轻松。
无论如何,获取所需信息的一种方法是:
$udvTest[-1].ProcessName
由于$udvTest 是一个数组,您可以通过索引找到我们想要的项目。如果你提供一个负数索引,PowerShell会从头到尾计算,所以[-1]表示取最后一项。
.ProcessName 是您正在处理对象的另一个指标,它将为您获取 ProcessName 属性的值。
【解决方案4】:
非常感谢!我现在看到我必须提供属性“ProcessName”来检索它的纯值。最好的!