powershell中给命令定义一个别名该怎么做?

在linux中别名可以如下:

alias tnpm="npm --registry=https://registry.npm.taobao.org"

那么在powershell中该怎么定义?

阅读 5.7k
2 个回答

Set-Alias 但是这个方法应该不支持语句,只能给 function 或者 program 设置 alias。

以下这样(给 program 设置 alias)

Set-Alias emacs 'gvim.exe'

或者(给 function 设置 alias)

Set-Alias ll Get-ChildItem

是合法的

但是如果是语句,比如:

Set-Alias psconfig 'code $PROFILE'

就会报错。这种时候的方法是新建 function,然后设置 alias:

function Edit-PowershellConfig {
    code $PROFILE
}
Set-Alias psconfig Edit-PowershellConfig

值得注意的是 powershell 的 verb(也就是 function 的第一个单词,上面那个就是 Edit)是有限制的,所有可用的 verb 可以通过 Get-Verb 这个方法得到。

这个时候你应该这么写:

function Start-npmWithTaobao {
    $argList = $args -Join ' '
    Start-Process -FilePath 'npm' -ArgumentList "--registry=https://registry.npm.taobao.org $argList"  -NoNewWindow 
}
Set-Alias tnpm Start-npmWithTaobao 

印象中好像是:

set-alias tnpm "npm --registry=https://registry.npm.taobao.org"

你试试吧先

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏