PowerShell返回多个值

时间:2012-07-31 15:23:16

标签: powershell

我正在编写PowerShell函数,我希望它返回一个布尔值。问题是PowerShell将返回管道中的任何内容,而不仅仅是返回语句中明确包含的内容。

请考虑以下代码。

function getTrue(){
  $testVariable = "test"
  $test
  return $true
}

$answer = getTrue

Write-host $answer

此代码的输出是

test True

这会返回System.Object[]。我想强制返回值为System.Boolean

如果我添加Write-Host

,此代码可以正常工作
function getTrue(){
  $testVariable = "test"
  Write-Host $test
  return $true
}

唯一的问题是我依赖于其他人正在编写的函数(我无法修改它),我无法保证他们使用Write-Host而不是仅仅留下变量单独上线。

有没有办法强制函数只返回我想要的值?

1 个答案:

答案 0 :(得分:6)

只需使用Out-Null来阻止意外返回:

function getTrue(){
    $test = "test";
    $test | Out-Null;
    return $true;
}

$answer = getTrue
Write-Host $answer

function getTrue(){
    $test = "test";
    Write-Host $test | Out-Null;
    return $true;
}

$answer = getTrue
Write-Host $answer