Powershell 从另一个上下文在脚本块中定义的引用函数

Powershell 从另一个上下文在脚本块中定义的引用函数,powershell,powershell-4.0,Powershell,Powershell 4.0,我试图调用在scriptblock之外的scriptblock内声明的函数,但PS无法解析它。这是我的密码 $ScriptBlock={ function Get-Baz(){ Write-Host "Baz executed" } function Get-Foo(){ Write-Host "Foo executed" } } Get-Baz <--

我试图调用在scriptblock之外的scriptblock内声明的函数,但PS无法解析它。这是我的密码

  $ScriptBlock={

        function Get-Baz(){

            Write-Host "Baz executed"
        }
        function Get-Foo(){
            Write-Host "Foo executed"
        }
    }

    Get-Baz <--The term 'Get-Baz' is not recognized as the name of a cmdlet, function, script 
$ScriptBlock={
函数Get-Baz(){
写入主机“Baz已执行”
}
函数Get-Foo(){
写入主机“Foo已执行”
}
}

Get Baz定义脚本块不会在其中执行任何操作

通常使用执行脚本块,但这会在不同的作用域中执行脚本块,因此无法工作

相反,您需要在当前范围内执行scriptblock。为此,请使用以下命令:

$ScriptBlock={

    function Get-Baz(){

        Write-Host "Baz executed"
    }
    function Get-Foo(){
        Write-Host "Foo executed"
    }
}

. $ScriptBlock

Get-Baz