使用别名

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

管理命令别名

PowerShell 提供用于管理命令别名的 cmdlet。 以下命令会列出用于管理别名的 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

若要创建别名,请使用 Set-Alias 命令。 可以为 cmdlet、函数、脚本和本机可执行文件文件创建别名。

Set-Alias -Name np -Value Notepad.exe
Set-Alias -Name cmpo  -Value Compare-Object

Windows 中的兼容性别名

PowerShell 有多个别名,允许 Unixcmd.exe 用户在 Windows 中使用熟悉的命令。 下表显示了常见命令、相关的 PowerShell cmdlet 和 PowerShell 别名:

Windows 命令行界面 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 会话中工作。 例如,ls 未被定义为 macOS 或 Linux 上的 PowerShell 别名,以运行本机命令而不是运行 Get-ChildItem

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

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

有关详细信息,请参阅 about_Aliases

参数别名和简写名称

PowerShell 还提供为参数创建速记名称的方法。 声明参数时使用 Alias 属性定义参数别名。 不能使用 *-Alias cmdlet 定义这些内容。

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

除了参数别名以外,PowerShell 还允许你使用唯一标识参数所需的最少字符来指定参数名称。 例如, Get-ChildItem cmdlet 具有 RecurseReadOnly 参数。 若要唯一标识 Recurse 参数,只需提供 -Rec。 如果将它与命令别名合并, Get-ChildItem -Recurse 可以缩短为 dir -Rec

不要在脚本中使用别名

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

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