我正在编写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而不是仅仅将变量留在行上.
有没有办法强制函数只返回我想要的值?
只是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)
| 归档时间: |
|
| 查看次数: |
3260 次 |
| 最近记录: |