【发布时间】:2013-03-03 16:00:06
【问题描述】:
我想从文件中导入外部函数,而不是将其转换为模块(我们每个函数有数百个文件,因此将它们都视为模块是多余的)。
这里是代码解释。请注意,我在 Import-Function 中有一些额外的逻辑,例如添加脚本根文件夹并检查文件是否存在并抛出特殊错误,以避免在需要这种导入的每个脚本中出现这种代码重复。
C:\Repository\Foo.ps1:
Function Foo {
Write-Host 'Hello world!'
}
C:\InvocationTest.ps1:
# Wrapper func
Function Import-Function ($Name) {
# Checks and exception throwing are omitted
. "C:\Repository\$name.ps1"
# Foo function can be invoked in this scope
}
# Wrapped import
Import-Function -Name 'Foo'
Foo # Exception: The term 'Foo' is not recognized
# Direct import
. "C:\Repository\Foo.ps1"
Foo # 'Hello world!'
有什么诀窍,点源到全局范围?
【问题讨论】:
标签: powershell