使用-replace过滤

时间:2012-04-29 18:34:38

标签: regex powershell replace

我正试图绕过-replace。有人能帮助我吗?

作为练习,我试图简单地过滤:

@{processName=chrome}

这样chrome将返回到列表框,我正在尝试将其输出到。

到目前为止,我有:

$processnames = Get-Process | select ProcessName | -replace '^@{processname=',''

我知道我做错了什么,有人能指出我正确的方向并解释为什么会这样吗?

3 个答案:

答案 0 :(得分:2)

尝试使用此过程名称,而不是最终}

$Processnames = Get-Process | Select ProcessName | foreach { $_ -replace '^@{processname=(.*)}' , '$1' }

答案 1 :(得分:2)

您可以在不使用替换操作的情况下获取进程名称:

Get-Process | Select-Object -ExpandProperty Name

要获得Chrome流程:

Get-Process chrome | Select-Object -ExpandProperty Name

答案 2 :(得分:1)

使用-replace要求您传递一个对象。所以为了你的命令工作:


$Processnames = Get-Process | Select ProcessName | 
   foreach {$_ -replace '^@{processname=',''}

请记住,当您将多个对象传递到管道以进行操作时,您必须将它们传递到foreach循环中。您告诉我我想获取$_值并查找^@processname=并将其替换为blank