エイリアスの使用

エイリアスは、コマンドレットまたはコマンド要素 (関数、スクリプト、ファイル、実行可能ファイルなど) の代替名または短縮名です。 実行可能ファイル名の代わりにエイリアスを使用してコマンドを実行できます。

コマンド エイリアスの管理

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

Windows の互換性エイリアス

PowerShell には、UNIXcmd.exe のユーザーが使い慣れたコマンドを Windows で使用できるさまざまなエイリアスがあります。 次の表は、一般的なコマンド、関連する PowerShell コマンドレット、PowerShell エイリアスを示しています。

cmd.exe コマンド UNIX コマンド PowerShell コマンドレット PowerShell エイリアス
cdchdir cd Set-Location slcdchdir
cls オフ Clear-Host cls clear
copy cp Copy-Item cpicpcopy
deleraserdrmdir rm Remove-Item rideleraserdrmrmdir
dir ls Get-ChildItem gcidirls
echo echo Write-Output write echo
md mkdir New-Item ni
move mv Move-Item mimovemi
popd popd Pop-Location popd
pwd Get-Location glpwd
pushd pushd Push-Location pushd
ren mv Rename-Item rniren
type cat Get-Content gccattype

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 コマンドレットには RecurseReadOnly というパラメーターがあります。 Recurse パラメーターを一意に識別するには、-rec を指定するだけで済みます。 それをコマンド エイリアスと組み合わせると、Get-ChildItem -Recurse を短縮して dir -rec とすることができます。

スクリプトではエイリアスを使用しないこと

エイリアスは、シェルで対話的に使用する便利な機能です。 スクリプトでは、常に完全なコマンドとパラメーター名を使用する必要があります。

  • プロファイル スクリプトでエイリアスを削除または再定義できます
  • 定義したエイリアスをスクリプトのユーザーが使用できない場合があります
  • エイリアスを使用すると、コードの読み取りと保守が困難になります