PowerShell返回多个值

Sta*_*hod 2 powershell

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

请考虑以下代码.

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

$answer = getTrue

Write-host $answer
Run Code Online (Sandbox Code Playgroud)

这段代码的输出是

test True
Run Code Online (Sandbox Code Playgroud)

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

如果我添加一个Write-Host,这段代码工作正常:

function getTrue(){
  $testVariable = "test"
  Write-Host $test
  return $true
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是我依赖于其他人正在编写的函数(我无法修改它),并且我无法保证他们使用了一个Write-Host而不是仅仅将变量留在行上.

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

Aki*_*kim 6

只是Out-Null用来抑制意外返回:

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

$answer = getTrue
Write-Host $answer
Run Code Online (Sandbox Code Playgroud)

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

$answer = getTrue
Write-Host $answer
Run Code Online (Sandbox Code Playgroud)