在从函数返回之前,我可以获得powershell准备的返回值吗?

时间:2009-09-21 09:36:18

标签: powershell

在从函数返回之前,是否可以知道powershell准备的返回值

伪代码:

function Foo()
{
    1
    2
    Write-Host $CURRENT_RESULT # I would like it to print [1, 2]
    3
    4
    Write-Host $CURRENT_RESULT # I would like it to print [1, 2, 3, 4]
}

1 个答案:

答案 0 :(得分:2)

我不知道像$ CURRENT_RESULT这样的变量。你可以做一些手动/丑陋的事情:

function Foo 
{
    $OFS = ','
    $r1 = & {
        1
        2
    }
    $r1
    Write-Host "Returning $r1"
    $r2 = & {
        3
        4
    }
    $r2
    Write-Host "Returning $r2"
}

您还提到想要在函数返回之前知道值。请注意,如果您运行此函数但未捕获其输出,则在第一次调用Write-Host之前,1和2将显示,例如:

PS> Foo
1
2
Returning 1,2
3
4
Returning 3,4

这是因为函数的行为类似于cmdlet,即只要输出可用,它们就会写入输出。所以在这方面,PowerShell功能并不像传统功能那样。