プログラミング

PowerhsellでBashのようなaliasを使用するには

PowerhsellでBashのようなaliasコマンドを使用できるようにする方法についてメモです。

powershellのaliasでは、bashと違い、cdなどができない。また、ruby.exeようなaliasは設定できても、ruby.exe dev.rbのような引数を含むaliasはbashと違い設定できない。

cdができない問題は、function+set-locationを使用して代替策とする。

Aliases can’t use parameters, so define a function instead.

function cdt { set-location "F:\a" }

これで、alias cdt="cd F:/a"と同様のコマンドになる。

exeでも引数が使用できないのは痛い。この問題を解決するには以下のスクリプトを使用する。

function New-BashStyleAlias([string]$name, [string]$command)
{
    $sb = [scriptblock]::Create($command)
    New-Item "Function:\global:$name" -Value $sb | Out-Null
}

New-BashStyleAlias openDev_ "notepad.exe C:\pg\dev.txt"
openDev_
# => 成功

new-alias openDev "notepad.exe C:\pg\dev.txt"
openDev
# => 失敗

使用例:
New-BashStyleAlias railsdev "ssh -R 52698:localhost:52698 -p 3022 yuis@192.168.99.1"
# => 成功
# 蛇足:sshconfigよりもこっちが好きです。

django – Equivalent to Bash alias in PowerShell – Stack Overflow

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です