2012-07-31 110 views
2

我正在寫一個powershell函數,並且我希望它返回一個布爾值。問題是,powershell將返回任何在管道中的東西,而不僅僅是返回語句中明確包含的內容。Powershell返回多個值

請考慮以下代碼。

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

$answer=getTrue 

Write-host $answer 

此代碼的輸出是

test True 

這將返回一個System.Object []。我想強制返回值是一個System.Boolean。

如果我添加寫主機,此代碼正常工作。

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

唯一的問題是,我取決於功能是其他人在寫作(我不能修改的話),我不能gaurantee他們使用的寫主機,而不只是離開線上的變量本身。

反正有強制功能只返回我想要的值嗎?

回答

5

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

這個工作很好,謝謝。 – StaticMethod 2012-07-31 16:15:22