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