最近 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
でラッパー関数に対してエイリアスを貼ってあげることで、それを間接的に呼び出すことが出来るようになる。
ということで、メモでした~。