前回の「関数ファイルを作る(PowerShell 入門)」で、関数を作成して利用する方法を紹介しました。
しかし、前回の方法では、PowerShellを終了すると、せっかく登録された関数も次回起動時には無効になってしまうという問題があります。
今回は、関数をプロファイルに登録することで、PowerShell起動時に自動で登録されるようにする方法を紹介します。
まずは、プロファイルですが、これはPowerShell起動時に1度だけ読み込まれる特別なスクリプトファイルです。
このファイルは $Profile という自動変数に格納されています。
試しにコマンドラインで $Profileを確認してみましょう。
C:\Users\HIRO\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 PS C:\Users\HIRO>
コマンドラインで下記のように入力し、メモ帳でプロファイルを開いてみましょう。
PS C:\Users\HIRO> Notepad $Profile
もしも、過去にプロファイルを作成したことがない場合は、「ファイル C:\Users\HIRO\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1が見つかりません。 作成しますか?」と聞かれるので、「はい」を選択してください。
あとは、下記のように入力してMicrosoft.PowerShell_profile.ps1を保存します。
function funcA { Write-Host "funcAです" }
保存が終わったら、PowerShellを再起動し、funcAを実行してみましょう。
PS C:\Users\HIRO> funcA funcAです
このように、プロファイルに関数を記述すると、毎回PowerShellに関数を手動で登録する必要がなくなります。
(スクリプトの実行にはセキュリティ設定が必要ですので、動作しない場合は「スクリプトファイルの作成(PowerShell 入門)」を参考に設定してください。)
しかし、多数の関数をMicrosoft.PowerShell_profile.ps1に記述するのはメンテナンスが大変です。
これを解決する方法としてよこけんさんのサイトの「プロファイル活用」でスマートな方法が紹介されています。
実は、私自身もこの方法を採用させていただいております。
この方法を使用すれば、前回の「関数ファイルを作る(PowerShell 入門)」で説明したように、関数をファイルに保存し管理が可能になります。
ただし、1点だけ注意していただきたいことがあります。
それは、プロファイルに記述する関数はスコープを指定しなくても問題ありませんが、ファイルに記述する関数はglobalスコープが必要であるということです。
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail