首页 > 解决方案 > 如何从脚本块(作业)中检索变量值

问题描述

我正在尝试获取在脚本块中修改的变量的值:

function Test-Function {
    $var = "apple"
    Start-Job -ScriptBlock {
        $var = "banana"
    }
    Write-Host "Variable is $var"
}
Test-Function
Variable is: apple

我正在尝试获取输出“香蕉”。这可能吗?

标签: powershell

解决方案


由于您在代码中使用 PS 作业,因此您需要使用等待作业完成使用wait-job,最后您必须使用receive-job. 用以下代码替换您的代码:

function Test-Function {
    $var = "apple"
    Start-Job -ScriptBlock {
        $var = "banana"
        Write-Host "Variable is $var"
    } | Wait-Job -Any |Receive-Job

    #Write-Host "Variable is $var"
}
Test-Function

希望能帮助到你。


推荐阅读