【问题标题】:runspacepool job with a function rather than a script block使用函数而不是脚本块运行空间池作业
【发布时间】:2017-03-18 22:29:38
【问题描述】:

我有一个场景,我想将一个函数放在一个 powershell 模块中,然后在一种情况下加载模块并循环调用该函数,但在另一种情况下我想加载模块并在其中使用该函数使用运行空间并行。但是,据我所知,我既不能将函数赋值为变量,也不能使用函数创建 Job。 这是正确的吗,我只需要在两个地方维护代码,一个脚本作为函数,另一个作为脚本块,还是我缺少替代方案?

【问题讨论】:

    标签: powershell runspace


    【解决方案1】:
    Function Get-Example
    {
        Write-Verbose -Verbose "This is an example"
    }
    
    $block = (Get-Command Get-Example).ScriptBlock
    Start-Job -ScriptBlock $block
    

    【讨论】:

    • 不错。我很好奇:如果该函数恰好是自定义模块的一部分,并且依赖于同一模块中的其他函数(假设自定义模块在 $env:PSModulePath 中可用),会发生什么?如果需要,我假设生成的作业能够自动加载模块?
    • 我相信你从函数中得到的正是脚本块——不多也不少。并且只有当它是一个脚本模块时。您需要执行Start-Job -InitializationScript 之类的操作来导入其他模块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多