如何检查命令输出是否包含“错误”?

时间:2019-05-31 21:51:06

标签: powershell

我有2个Powershell脚本

script1.ps1包含对Vault的REST调用,该调用会返回包含一些键/值的json响应。

Function getValues($token) {
    $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
    $headers.Add("X-Vault-Token", $token)
    $response = Invoke-RestMethod  -method GET -uri "https://vault.com:8243/v1/secret/vault/development" -ContentType 'application/json' -headers $headers
    $response.data| ConvertTo-Json  -depth 100
}

getValues $token

如您所见,该方法需要一个$token

我将该令牌保存在系统变量中。

现在,我在script1中调用script2来获取这样的键/值:

$resp = & ".\script1.ps1" | convertfrom-json

效果很好,我可以根据需要获得价值。

但是,我正在测试将来是否有错误,例如通过从系统变量中删除令牌来进行。

$resp返回:

errors                
------                
{missing client token}

太好了。现在,我想退出该脚本。

我尝试过这样的检查:

if($resp.tostring().contains("error"))
{
   write-output "error!"
    exit 1
}

但它从未退出过,也没有返回输出错误!

在这种情况下,我应该如何寻找比赛?

0 个答案:

没有答案