【问题标题】:Filter Invoke-RestMethod results过滤 Invoke-RestMethod 结果
【发布时间】:2017-02-03 20:04:50
【问题描述】:

我正在通过 GET Invoke-RestMethod 从我的应用程序中提取有关提供程序的一些详细信息。 目前它正在返回有关提供者的所有详细信息。我只想返回活动状态设置为 True 的提供程序的代码。

$acctname = 'user1'
$password = 'secret'

$params = @{uri = 'http://localhost:8080/tryout/settings/provider/providerDetails';
                   Method = 'Get';
                   Headers = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($acctname):$($password)"))
           } #end headers hash table
   } #end $params hash table


# This gets all the basic info ok
$var = invoke-restmethod @params

#show the values in the console
echo $var

它当前返回所有这些详细信息。如果 active-true,我需要的只是代码。

id            : 90
name          : Test 1
active        : True
code          : NOT_STATED
system        : False
objectVersion : 2

id            : 91
name          : Test 2
active        : True
code          : MAIN
system        : False
objectVersion : 3

id            : 20372
name          : Test 3
active        : True
code          : NOT_STATED
system        : True
objectVersion : 2

id            : 30382
name          : Test 4
active        : True
code          : OP
system        : False
objectVersion : 1

【问题讨论】:

    标签: powershell powershell-2.0


    【解决方案1】:

    只需 管道 $var 到 Where-Object cmdlet 并过滤它们:

    $var | Where-Object active -eq 'True'
    

    【讨论】:

    • 很确定你需要" 左右True
    • @4c74356b41 很确定你没有 ;-)
    • 如果字符串中包含空格;引号是必需的。为了一致性;我会一直提倡使用它们:-)
    • @gvee 是的,我同意你的看法,并且会改变我的答案。
    • 大家好,感谢指针现在正常工作(无论如何,我现在回来的数字看起来不错)。为了安全起见,去掉了双引号。
    猜你喜欢
    • 1970-01-01
    • 2021-08-10
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多