やりたいこと
powershellでもエイリアスを使いたい。(bashの.bashrcみたいなことをしたい)
やったこと
- profileの記述
- profileの実行
profileの記述
poweshellでのAliasの記述は以下のパスに記述される。 このパスは環境変数に登録されているので$PROFILEで呼び出し可能
PS C:\Users\XXXX> $PROFILE C:\Users\XXXX\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
イメージ的にはこれがbashでいう.bashrcみたいなもの。。。ではなかった。※後述
このファイルの中にエイリアスに登録したい内容を記載することで実現できる。フォーマットは以下の通り。
function vm(){ C:\WINDOWS\system32\vmconnect.exe localhost Ubuntu }
例示してあるのはHyper-v上に構築したUbuntuをコマンド一発で起動するためのエイリアス。(いちいちHyper-vマネージャを起動するのが面倒だった。
ついでに、ここではコマンドにパラメータを渡しているためfunctionを宣言しているが、 パラメータが必要ないならもっと簡単にかける。
Set-Alias [エイリアス名] [コマンド]
profileの実行
powershellのprofleを.bashrcのように考えているとここで躓いた。profileにエイリアスを記載しても反映されないのである。
これは考えてみたら当たり前で、実態は「Microsoft.PowerShell_profile.ps1」であるから。
ps1ってこれスクリプトファイルやん。だったら実行してどこかに読み込ませるんだと思ってさっくり実行。
PS C:\Users\XXXX> .$PROFILE
なにもエラーがでなければ無事読み込みが完了しているのでエイリアスが実行できるはず。
普段スクリプト動かさない人だとExecutePlicy関係で怒られるかもしれないので、そのときはスクリプトの実行権限与えて再実行すべし、以上。