Powershell-将函数结果传递到脚本的其他部分

Powershell-将函数结果传递到脚本的其他部分,powershell,variables,Powershell,Variables,Powershell新手 我有一个Powershell脚本,它有一个DO-UNTIL循环。在这个循环中,我调用了2个函数。根据函数的结果确定是否可以继续脚本。我的问题似乎是将函数的结果传递回DO-UNTIL循环,以使循环继续 以下是总体思路: Function MyFunction1 { (Stuff happens here) IF($Good -eq "Yes"){ Return 1 }Else{ Return 0 }

Powershell新手

我有一个Powershell脚本,它有一个DO-UNTIL循环。在这个循环中,我调用了2个函数。根据函数的结果确定是否可以继续脚本。我的问题似乎是将函数的结果传递回DO-UNTIL循环,以使循环继续

以下是总体思路:

Function MyFunction1
{
(Stuff happens here)
    IF($Good -eq "Yes"){
            Return 1
    }Else{
            Return 0
    }
}


Function MyFunction2
{
(Other stuff happens here)
    IF($ReallyGood -eq "Yes"){
            Return 1
    }Else{
            Return 0
    }
}

DO{
    $a = MyFunction1
    IF($a -eq 1){
      $b = MyFunction2
            IF($b -eq 1){
                        $endscript = "Yes"
                        }ELSE{
                        $endscript = "No"
                        }
    }Else{
    $endscript = "No"
    }   
}UNTIL(
$endscript -eq "Yes")
使用此问题:

我在函数中创建了一个变量,并将属性设置为一个数字。然后给变量赋值。最后,在IF语句中,我可以引用该变量属性

Function MyFunction1
{
(Stuff happens here)

    $fun1_value = "" | Select-Object -Property number

    IF($Good -eq "Yes"){
            $fun1_value = 1
            Return $fun1_value
    }Else{
            $fun1_value = 0
            Return $fun1_value
    }
}


Function MyFunction2
{
(Other stuff happens here)

    $fun2_value = "" | Select-Object -Property number

    IF($ReallyGood -eq "Yes"){
            $fun2_value = 1
            Return $fun2_value
    }Else{
            $fun2_value = 0
            Return $fun2_value
    }
}

DO{
    $fun1 = MyFunction1
    IF($fun1.number -eq 1){
      $fun2 = MyFunction2
            IF($fun2.number -eq 1){
                        $endscript = "Yes"
                        }ELSE{
                        $endscript = "No"
                        }
    }Else{
    $endscript = "No"
    }   
}UNTIL(
$endscript -eq "Yes") 

除了最后一行中缺少的close paren,这在我的机器上运行良好。您期望的输出是什么?在函数执行过程中,会建立更多的变量,并返回它们的值。请注意,PowerShell可能会返回的不仅仅是返回后的表达式。你能告诉我这里发生了什么吗?完整的脚本有1000多行,但我想我是从中了解到的:对不起,$fun1_value=1将覆盖$fun1_value=|选择你应该写的对象-属性号:$fun1_value.number=1创建的$fun1_值