エイリアスは、コマンドレットまたはコマンド要素 (関数、スクリプト、ファイル、実行可能ファイルなど) の代替名または短縮名です。 実行可能ファイル名の代わりにエイリアスを使用してコマンドを実行できます。
コマンド エイリアスの管理
PowerShell には、コマンド エイリアスを管理するためのコマンドレットが用意されています。 次のコマンドは、エイリアスを管理するコマンドレットを示しています。
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 コマンドレットを使用して、環境内で使用可能なエイリアスを一覧表示します。 1 つのコマンドレットのエイリアスを一覧表示するには、 Definition パラメーターを使用し、実行可能ファイル名を指定します。
Get-Alias -Definition Get-ChildItem
CommandType Name
----------- ----
Alias dir -> Get-ChildItem
Alias gci -> Get-ChildItem
Alias ls -> Get-ChildItem
1 つのエイリアスの定義を取得するには、 Name パラメーターを使用します。
Get-Alias -Name gci
CommandType Name
----------- ----
Alias gci -> Get-ChildItem
エイリアスを作成するには、 Set-Alias
コマンドを使用します。 コマンドレット、関数、スクリプト、およびネイティブ実行可能ファイルのエイリアスを作成できます。
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 コマンドレット | 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
ではなくネイティブ コマンドが実行されます。
パラメーターを使用したコマンドの代替名の作成
エイリアスは、コマンドレット、スクリプト、関数、または実行可能ファイルに割り当てることができます。 一部の Unix シェルとは異なり、パラメーターを持つコマンドにエイリアスを割り当てることはできません。 たとえば、Get-Eventlog
コマンドレットにエイリアスを割り当てることができますが、Get-Eventlog -LogName System
コマンドにエイリアスを割り当てることはできません。
パラメーターを含むコマンドを含む関数を作成する必要があります。
詳細については、about_Aliasesを参照してください。
パラメーターエイリアスと短縮名
PowerShell には、パラメーターの短縮名を作成する方法も用意されています。 パラメーターエイリアスは、パラメーターを宣言するときに Alias
属性を使用して定義されます。 これらは、 *-Alias
コマンドレットを使用して定義することはできません。
詳細については、 Alias 属性 のドキュメントを参照してください。
PowerShell では、パラメーターエイリアスに加えて、パラメーターを一意に識別するために必要な最小の文字を使用してパラメーター名を指定できます。 たとえば、 Get-ChildItem
コマンドレットには Recurse パラメーターと ReadOnly パラメーターがあります。
Recurse パラメーターを一意に識別するには、-Rec
を指定するだけで済みます。 コマンド エイリアスと組み合わせると、 Get-ChildItem -Recurse
を dir -Rec
に短縮できます。
スクリプトでエイリアスを使用しない
エイリアスは、シェルで対話形式で使用する便利な機能です。 スクリプトでは常に完全なコマンドとパラメーター名を使用する必要があります。
- プロファイル スクリプトでエイリアスを削除または再定義できます
- 定義したエイリアスは、スクリプトのユーザーが使用できない場合があります
- エイリアスを使用すると、コードの読み取りと保守が困難になります
PowerShell