在powershell中将变量传递给where-object不起作用

时间:2016-12-04 22:13:00

标签: regex powershell

非常基础以下是我要完成的事情:

#Make a list of programs depending on Input

get-service  | Where-Object {$_.name -Like $Input}| select-object name,  DisplayName, ServiceType, Status

get-service  | Where-Object {$_.name -Like "Sys*"}| select-object name, DisplayName, ServiceType, Status

现在第二个get-service工作没问题。但是第一个不与我合作,它只是抛出服务器上的所有服务。

我通过以下方式获得用户输入:

$Input = Read-Host -Prompt 'Input your regex'

那么这里发生了什么。我哪里出错了?不,我用写主机测试变量,字符串就在那里。就我所知,它并没有消失。

1 个答案:

答案 0 :(得分:0)

由于范围问题很简单。

解决方案是创建一个如下所示的过滤器:

Why doesn't PowerShell Where-Object work when passing a variable?

我刚刚这样做了:

#Make a list of programs depending on Input
$Filter = $Input
get-service  | Where-Object {$_.name -Like $Filter}| select-object name, DisplayName, ServiceType, Status