エイリアスの使用
エイリアスは、コマンドレットまたはコマンド要素 (関数、スクリプト、ファイル、実行可能ファイルなど) の代替名または短縮名です。 実行可能ファイル名の代わりにエイリアスを使用してコマンドを実行できます。
コマンド エイリアスの管理
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 |
Note
このテーブルのエイリアスは 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