【问题标题】:PowerShell returns multiple valuesPowerShell 返回多个值
【发布时间】:2018-08-27 10:11:15
【问题描述】:

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

考虑下面的代码。

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 而不是仅仅将变量留在单独一行。

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

【问题讨论】:

    标签: powershell


    【解决方案1】:

    只需使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      相关资源
      最近更新 更多