別名是 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 指令檔及 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、mv |
popd |
popd |
Pop-Location |
popd |
pwd |
Get-Location |
gl、pwd、$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 別名,因此 PowerShell 執行的是原生指令而非 Get-ChildItem。
使用參數建立命令的替代名稱
您可以將別名指派給 Cmdlet、腳稿、函式或可執行檔。 與某些 Unix shell 不同,別名的定義不能包含參數。 例如,你可以為 cmdlet 指派別名 Get-Eventlog ,但無法為指令指派別名 Get-Eventlog -LogName System 。
您必須建立包含具有參數之命令的函式。
如需詳細資訊,請參閱 about_Aliases。
參數別名和簡寫名稱
PowerShell 也提供為參數建立速記名稱的方法。 當您宣告 參數時, Alias 會使用 屬性來定義參數別名。 參數別名無法用 *-Alias 指令集來定義。
如需詳細資訊,請參閱 別名屬性 檔。
除了參數別名之外,PowerShell 還可讓您使用唯一識別參數所需的最少字元來指定參數名稱。 例如, Get-ChildItem Cmdlet 具有 Recurse 和 ReadOnly 參數。 要唯一識別遞迴參數,只需提供 -Rec。 如果您將它與命令別名結合, Get-ChildItem -Recurse 可以縮短為 dir -Rec。
請勿在腳本中使用別名
別名是在 Shell 中以互動方式使用的便利功能。 您應該一律在文稿中使用完整的命令和參數名稱。
- 你可以在設定檔腳本中刪除或重新定義別名
- 你在個人檔案中定義的別名不會對其他使用者開放
- 別名可讓您的程式代碼更難讀取和維護