别名是 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 中以交互方式使用。 应始终在脚本中使用完整的命令和参数名称。
- 可以在配置文件脚本中删除或重新定义别名
- 你定义的任何别名都可能不适用于脚本的用户
- 别名使代码难以读取和维护