别名是 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 有多个别名,允许 Unix 和 cmd.exe 用户在 Windows 中使用熟悉的命令。 下表显示了常见命令、相关的 PowerShell cmdlet 和 PowerShell 别名:
| Windows 命令行界面 | Unix 命令 | PowerShell cmdlet | PowerShell 别名 |
|---|---|---|---|
cd、chdir |
cd |
Set-Location |
sl、cd、chdir |
cls |
clear |
Clear-Host |
cls
clear
|
copy |
cp |
Copy-Item |
cpi、cp、copy |
del、erase、rd、rmdir |
rm |
Remove-Item |
ri、del、erase、rd、rm、rmdir |
dir |
ls |
Get-ChildItem |
gci、dir、ls |
echo |
echo |
Write-Output |
write
echo
|
md |
mkdir |
New-Item |
ni |
move |
mv |
Move-Item |
mi、move、mi |
popd |
popd |
Pop-Location |
popd |
pwd |
Get-Location |
gl、pwd |
|
pushd |
pushd |
Push-Location |
pushd |
ren |
mv |
Rename-Item |
rni、ren |
type |
cat |
Get-Content |
gc、cat、type |
注释
此表中的别名特定于 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 具有 Recurse 和 ReadOnly 参数。 若要唯一标识 Recurse 参数,只需提供 -Rec。 如果将它与命令别名合并, Get-ChildItem -Recurse 可以缩短为 dir -Rec。
不要在脚本中使用别名
别名是一项方便的功能,可在 shell 中以交互方式使用。 应始终在脚本中使用完整的命令和参数名称。
- 可以在配置文件脚本中删除或重新定义别名
- 你定义的任何别名都可能不适用于脚本的用户
- 别名使代码难以读取和维护