首页 > 解决方案 > 在函数中导入模块

问题描述

我有一个 .ps1 文件,其中包含需要导入的变量,但我不知道启动时的路径,需要在函数中导入脚本。我可以验证脚本是否存在,但没有导入任何变量。

vars.ps1:$var1 = 4

class Foo
{
    static [string]GetFilename()
    {
        return join-path $path "vars.ps1"
    }
    static [void] ImportScript()
    {
        $settingsFile = GetFilename()
        Import-Module $settingsFile

        write-host "testing settings path $settingsFile : $(Test-Path $settingsFile)"
    }

    static [void] Print()
    {
        $var1= $script:var1
        write-host "var1: $var1"
    }
}

输出:var1:

在函数中导入模块似乎存在限制。我还尝试使用 $global 和常规函数而不是类方法,但得到了相同的结果。

从函数中提取逻辑并在脚本级别运行它是可行的。

标签: powershell

解决方案


推荐阅读