PowerShell の関数を Profile に登録するのはお手軽ですが、多くの関数を Profile に書いてしまうと見通しが悪くなってしまいます。
そんな時は、関数をモジュールにして登録するのがお手軽です。
モジュールは .psm1 の拡張子を持つスクリプトで、.ps1 と同じように BOM 付き UTF-8 で書きます。
例えば「hoge.psm1」とモジュールを作った場合は、モジュールディレクトリにモジュール名と同じ「hoge」ディレクトリを作成します。
モジュールディレクトリは、Profile があるディレクトリのサブディレクトリ「Modules」です。
Windows PowerShell 5.x | C:\Users\<User Name>\Documents\WindowsPowerShell\Modules\ |
PowerShell Core 6.0 以降 | C:\Users\<User Name>\Documents\PowerShell\Modules |
PowerShell 的に書けばこんな感じですね。
$ModulePath = Join-Path (Split-Path $PROFILE -Parent) "Modules"
ここに「hoge」フォルダを作成し、「hoge.psm1」を配置します。
この仕様は、Windows PowerShell 5.x も、 PowerShell Core 6 以降も同じなので、汎用インストーラーを作成することが出来ます。
インストーラー(install.ps1)
|
アンインストールは、ディレクトリを削除すればいいので、こちらも汎用アンインストーラーが書けますね
アンインストーラー(uninstall.ps1)
|
余談ですが、システムレベルのモジュールは、PowerShell の実行プログラムのあるディレクトにあります
Windows PowerShell 5.x | C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\ |
PowerShell Core 6 | C:\Program Files\PowerShell\6\Modules |
PowerShell Core 7-preview | C:\Program Files\PowerShell\7-preview\Modules |
関数を PowerShell プロンプトで実行する
https://www.vwnet.jp/Windows/PowerShell/2016100401/UseFunctionInPsPrompt.htm
Copyright © MURA All rights reserved.