使用別名
別名是 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
會使用 屬性來定義參數別名。 這些無法使用 Cmdlet 來定義 *-Alias
。
如需詳細資訊,請參閱 別名屬性 檔。
除了參數別名之外,PowerShell 還可讓您使用唯一識別參數所需的最少字元來指定參數名稱。 例如, Get-ChildItem
Cmdlet 具有 Recurse 和 ReadOnly 參數。 若要唯一識別 Recurse 參數,您只需要提供 -rec
。 如果您將它與命令別名結合, Get-ChildItem -Recurse
可以縮短為 dir -rec
。
請勿在腳本中使用別名
別名是可在殼層中以互動方式使用的便利功能。 您應該一律在文稿中使用完整的命令和參數名稱。
- 您可以在設定檔文稿中刪除或重新定義別名
- 您定義的任何別名都可能無法供腳本的使用者使用
- 別名可讓您的程式代碼更難讀取和維護