1

我正在努力解决问题-replace。有谁能够帮我?

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

@{processName=chrome}

所以它chrome返回到我试图将其输出到的列表框。

到目前为止,我有:

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

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

4

3 回答 3

2

试试这个没有最后的进程名称}

$Processnames = Get-Process | Select ProcessName | foreach { $_ -replace '^@{processname=(.*)}' , '$1' }
于 2012-04-29T19:57:46.943 回答
2

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

Get-Process | Select-Object -ExpandProperty Name

要获得 chrome 进程:

Get-Process chrome | Select-Object -ExpandProperty Name
于 2012-04-29T20:03:01.493 回答
1

使用 -replace 需要您将对象传递给它。因此,为了让您的命令正常工作:


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

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

于 2012-04-29T19:42:20.320 回答