解决方案:
Import-Module (Join-Path $PSScriptRoot $_.FileName) -Verbose -Global
在我的模块中添加-Global
开关,使所有函数都可以在它自己的上下文之外访问。
我有一个我创建的Powershell模块(ConfigModule.psm1
),我曾经使用过config.xml
。
每当我将模块包含在测试脚本中时,一切正常。
我调用名为Import-ConfigModules
的函数并导入(type="Module"
)的模块,并从type="script"
创建XML
的变量,其值为{{1} }}
所以这是我的加载层次结构:
Get-Item...
ConfigModule.psm1
导入同一目录中的其他模块问题:
在不同文件中调用模块函数时,模块会加载,因为我使用ConfigModule.psm1
切换到测试,我可以访问变量,但是我无法访问函数-Verbose
即可。
这是导入模块范围问题吗?
如果是这样,如何将模块传递到我的测试脚本上下文中?
<小时/> ConfigModule.psm1&gt;进口ConfigModules
not recognized
以下是Function Import-ConfigModules {
param([String]$Path)
$modules = Get-ConfigModules -Path $Path
# Iterate by FileType
$modules.Keys | % {
switch($modules[$_]) {
{$_.FileType -eq "module"} {
# If Module exists, load, else find similar modules=
if(Test-Path (Join-Path $PSScriptRoot $_.FileName)) {
Import-Module (Join-Path $PSScriptRoot $_.FileName) -Verbose
# Test if module was loaded
if(Get-Module $_.VariableName) {
Write-Host "Module [Loaded]: " ($_.FileName) -ForegroundColor Green
}
else {
Write-Host "Module [Error]: Could not import module - " ($_.FileName) -ForegroundColor Green
}
}
else {
Write-Host "Module [Missing]: $($_.FileName).`r`nFound similar: " -ForegroundColor Yellow -NoNewline
Get-SimilarFile `
-Path $PSScriptRoot `
-Name $_.FileName
}
break
}
{$_.FileType -eq "script"} {
if(Test-Path (Join-Path $PSScriptRoot $_.FileName)) {
Write-Host "Script [Loaded]: " ($_.FileName) -ForegroundColor Green
# Create variables dynamically
Set-Variable -Name "$($_.VariableName)" -Scope Global -Value (Get-Item -Path (Join-Path $PSScriptRoot $_.FileName))
}
else {
Write-Host "Script [Missing]: $($_.FileName).`r`nFound similar: " -ForegroundColor Yellow -NoNewline
Get-SimilarFile `
-Path $PSScriptRoot `
-Name $_.FileName
}
break
}
default { Write-Warning "$($_.FileName) : Bad FileType definition. {FileType: $($_.FileType)}" }
}
Write-Host
}
}
的示例:
Config.xml
答案 0 :(得分:1)
有效的解决方案:
Import-Module (Join-Path $PSScriptRoot $_.FileName) -Verbose -Global
通过将-Global
切换添加到Import-Module
cmdlet,它会将模块导入全局范围,允许外部脚本访问其功能。