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

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

在linux中别名可以如下:

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

那么在powershell中该怎么定义?


印象中好像是:

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

你试试吧先


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 

楼上的命令也是可以,使用new-alias也可以。
powershell的帮助使用get-help的,
查一下与alias相关的命令get-help alias,查rename在前面的get-help rename*
查命令的使用方法get-help new-alias
powershell的命令基本上都是 动词-名词 的形式{get/new/set/remove/..}-{...}

【热门文章】
【热门文章】