2012-04-29 54 views
1

我试图让我的头在-replace。有谁能够帮助我?过滤器使用替换

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

@{processName=chrome} 

这样chrome返回到列表框我想它输出到。

到目前为止,我有:

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

我知道我做错事,可有人点我在正确的方向,并解释为什么吗?

回答

2

更换试试这个有进程名没有最终}

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

使用-replace需要您有一个传递给它的对象。因此,为了使您的命令工作:


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

当你路过多个对象沿管路来操作你必须将它们传递到一个foreach循环记住。你告诉它我要带$_价值和寻找^@processname=blank

+0

啊我明白了。谢谢 – obious

2

您可以在不使用替代获取进程名操作:

Get-Process | Select-Object -ExpandProperty Name 

得到公正的镀铬工艺:

Get-Process chrome | Select-Object -ExpandProperty Name