なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

PowerShell で既存のコマンドをラップする感じにエイリアスを貼りたい

最近 Asterisk っていうコマンドラインツールを作ったのですが、そこで PowerShell で既存コマンドに対してエイリアスを貼る必要があったので、その方法の紹介。
基本的には、こんな感じで関数を定義して、それに対してエイリアスを貼ってあげれば良い。

$ Set-Variable -name var_git -Value "function func_git { ast exec git -- `$args }" --scope global
$ Get-Variable var_git -ValueOnly | Invoke-Expression
$ Set-Alias git func_git

例えば、 function git { git $args } みたいなのはうまく動かなくて、関数定義したものよりもすでにあるコマンドの方が優先的に実行される。
そのため、 Set-Alias でラッパー関数に対してエイリアスを貼ってあげることで、それを間接的に呼び出すことが出来るようになる。

ということで、メモでした~。