我正在编写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
而不是仅仅留下变量单独上线。
有没有办法强制函数只返回我想要的值?
答案 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