PowerShell SALAD:環境の引き上げ

重いブーツもつまみ革(ストラップ)をもって引っ張れば持ち上がります。
オペレーティングシステムの起動ではブーツをイメージしてブートストラップという考え方が使われています。
もともと、はじめの読み込み領域は貧弱なもので、できることも少ないのがコンピュータでした。
だけど、汎用的なつくりであるがゆえに、メモリの仮想化を実現したりして拡張でき、
いまとなってはいろんな動作を提供します。

スクリプト環境も、ブーツのつまみ革をつくる。
はじめは小さいのがいいんです。

.batファイルにこう書いて保存する。

start powershell -noexit

これでWindowsPowerShell環境が起動します。

でも、これだとPowerShellは起動するけど、拡張機能の読み込みや環境のカスタマイズは行われません。
なので、ブートストラップローダーみたいなものを用意します。
バッチファイルと同じフォルダにbootstrapというフォルダをつくり、
イニシャライズのスクリプトを置くこととし、
それを必ず実行するようにバッチファイルに記述するようにします。
これで環境初期化スクリプトの内容を自由に変更でき、起動バッチについても内容変更は不要です。

@echo off
set currd=%~dp0
set currd=%currd:"=%
set psf~%currd%bootstrap\initialize_senv.ps1
start powershell -noexit %psf% %currd%

こんなかんじに.batファイルを記述します。
環境にはルートフォルダという概念を持たせて相対的にパスを参照できるようにしたいので、
初期化スクリプトに引数としてカレントパスを渡すよう設計しておきました。