淡々と備忘録を綴る

IT周りの行き詰まったところやメモを備忘録として記録します

powershellでパラメータ付きエイリアスを登録する

やりたいこと

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関係で怒られるかもしれないので、そのときはスクリプトの実行権限与えて再実行すべし、以上。