モジュールからモジュールへの変換ではなく、ファイルから外部関数をインポートしたい(モジュールごとに何百ものファイルがあるので、 。関数内のファイルからグローバルスコープへのドットソーシング関数
ここにコードの説明があります。そのような種類のインポートを必要とする各スクリプトでこのコードの重複を避けるために、スクリプトルートフォルダの追加やファイルの存在の確認、特別なエラーのスローなど、インポート機能にいくつかの追加ロジックがあることに注意してください。
C:\リポジトリ\ 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!'
グローバルスコープにソースをドットに任意のトリックは、ありますか?
ありがとう、この素敵なハッチは働いています。あなたが気にしないなら、それを動作させるための小さな修正を加えました。 –
気にしないでください。私はちょうど完全な完成した解決策ではなく、アイデアを伝えようとしていました。 – mjolinor
@AntonPurinあなたは「マイナーな修正」を含むように答えを更新できますか? –