使用别名

别名是 cmdlet 或命令元素(如函数、脚本、文件或可执行文件)的备用名称或简写名称。 可以使用别名而不是可执行文件名来运行命令。

管理命令别名

PowerShell 提供用于管理命令别名的 cmdlet。

Get-Command -Noun Alias
CommandType Name         Version Source
----------- ----         ------- ------
Cmdlet      Export-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Get-Alias    7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Import-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      New-Alias    7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Remove-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Set-Alias    7.0.0.0 Microsoft.PowerShell.Utility

有关详细信息,请参阅 about_Aliases

使用 Get-Alias cmdlet 列出环境中可用的别名。 若要列出单个 cmdlet 的别名,请使用 Definition 参数并指定可执行文件名。

Get-Alias -Definition Get-ChildItem
CommandType     Name
-----------     ----
Alias           dir -> Get-ChildItem
Alias           gci -> Get-ChildItem
Alias           ls -> Get-ChildItem

若要获取单个别名的定义,请使用 Name 参数。

Get-Alias -Name gci
CommandType     Name
-----------     ----
Alias           gci -> Get-ChildItem

Windows 中的兼容性别名

PowerShell 具有多个别名,使 UNIX 和 cmd.exe 用户可以在 Windows 中使用熟悉的命令。 下表显示了常用命令、相关的 PowerShell cmdlet 和 PowerShell 别名:

cmd.exe命令 UNIX 命令 PowerShell Cmdlet PowerShell 别名
cdchdir cd Set-Location slcdchdir
cls clear Clear-Host cls clear
copy cp Copy-Item cpicpcopy
deleraserdrmdir rm Remove-Item rideleraserdrmrmdir
dir ls Get-ChildItem gcidirls
echo echo Write-Output write echo
md mkdir New-Item ni
move mv Move-Item mimovemi
popd popd Pop-Location popd
pwd Get-Location glpwd
pushd pushd Push-Location pushd
ren mv Rename-Item rniren
type cat Get-Content gccattype

注意

此表中的别名特定于 Windows。 某些别名在其他平台上不可用。 这是为了使本机命令能够在 PowerShell 会话中工作。 例如,未在 macOS 或 Linux 上将 ls 定义为 PowerShell 别名,以便运行本机命令而不是 Get-ChildItem

为具有参数的命令创建备用名称

可以将别名分配给 cmdlet、脚本、函数或可执行文件。 与某些 Unix shell 不同,无法将别名分配给具有参数的命令。 例如,可以将别名分配给 Get-Eventlog cmdlet,但不能将别名分配给 Get-Eventlog -LogName System 命令。 必须创建包含具有参数的命令的函数。

有关详细信息,请参阅 about_Aliases

参数别名和简写名称

PowerShell 还提供为参数创建简写名称的方法。 参数别名是在声明参数时使用 Alias 属性定义的。 无法使用 *-Alias cmdlet 定义这些参数别名。

有关详细信息,请参阅 Alias 属性文档。

除了参数别名之外,PowerShell 还使你能够使用唯一标识参数所需的最少字符指定参数名称。 例如,Get-ChildItem cmdlet 具有 Recurse 和 ReadOnly 参数。 若要唯一标识 Recurse 参数,你只需提供 -rec。 如果要将该参数名称与命令别名相结合,Get-ChildItem -Recurse 可以缩短为 dir -rec

请勿在脚本中使用别名

别名是在 shell 中以交互方式使用的简便功能。 应始终在脚本中使用完整的命令和参数名称。

  • 可以在配置文件脚本中删除或重新定义别名
  • 你定义的任何别名都有可能不适用于脚本用户
  • 别名使代码难以读取和维护