モジュールに変換するのではなく、ファイルから外部関数をインポートしたい(関数ごとに何百ものファイルがあるので、それらすべてをモジュールとして扱うのはやり過ぎです)。
これがコードの説明です。この種のインポートを必要とする各スクリプトでこのコードの重複を回避するために、スクリプトのルートフォルダーを追加したり、ファイルの存在を確認して特別なエラーをスローしたりするなど、インポート機能にいくつかの追加ロジックがあることに注意してください。
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!'
ソースをグローバルスコープにドットするためのトリックはありますか?