別名是 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 殼層,您無法將別名指派給帶參數的命令。 例如,您可以將別名指派給 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 中以互動方式使用的便利功能。 您應該一律在文稿中使用完整的命令和參數名稱。
- 您可以在設定檔腳本中刪除或重新定義別名
- 您定義的任何別名都可能無法供腳本的使用者使用
- 別名可讓您的程式代碼更難讀取和維護