我正在努力解决问题-replace
。有谁能够帮我?
作为练习,我试图简单地过滤:
@{processName=chrome}
所以它chrome
返回到我试图将其输出到的列表框。
到目前为止,我有:
$processnames = Get-Process | select ProcessName | -replace '^@{processname=',''
我知道我做错了什么,有人可以指出我正确的方向并解释为什么吗?
我正在努力解决问题-replace
。有谁能够帮我?
作为练习,我试图简单地过滤:
@{processName=chrome}
所以它chrome
返回到我试图将其输出到的列表框。
到目前为止,我有:
$processnames = Get-Process | select ProcessName | -replace '^@{processname=',''
我知道我做错了什么,有人可以指出我正确的方向并解释为什么吗?
试试这个没有最后的进程名称}
:
$Processnames = Get-Process | Select ProcessName | foreach { $_ -replace '^@{processname=(.*)}' , '$1' }
您可以在不使用替换操作的情况下获取进程名称:
Get-Process | Select-Object -ExpandProperty Name
要获得 chrome 进程:
Get-Process chrome | Select-Object -ExpandProperty Name
使用 -replace 需要您将对象传递给它。因此,为了让您的命令正常工作:
$Processnames = Get-Process | Select ProcessName |
foreach {$_ -replace '^@{processname=',''}
请记住,当您将多个对象传递到管道中以进行操作时,您必须将它们传递到一个foreach
循环中。你是在告诉它我想要获取$_
价值并寻找^@processname=
并替换它blank