Windows PowerShell では、エイリアスというメカニズムを使用することで、コマンドを別名で参照できるようになっています。エイリアスの利点は、過去に他のシェルを使ったことのあるユーザーが、同様の操作を Windows PowerShell で行うときに、使い慣れたコマンド名を再利用できることです。Windows PowerShell のエイリアスについて、ここでは詳しく説明しませんが、実際に使用してみればそれほど難しいことはありません。

エイリアスでは、入力したコマンド名が別のコマンドに関連付けられます。たとえば、Windows PowerShell には、出力ウィンドウをクリアするための Clear-Host という内部関数があります。コマンド プロンプトで「cls」または「clear」と入力すると、自動的に Clear-Host 関数のエイリアスであると解釈され、Clear-Host 関数が実行されます。

この機能には、Windows PowerShell の使い方を学ぼうとするユーザーにとって、多くの利点があります。第一に、Cmd.exe および UNIX のユーザーの多くは、その経験上、既に多数のコマンド名を覚えているという点が挙げられます。対応する Windows PowerShell のコマンドの実行結果は Cmd.exe および UNIX の場合と同じではないかもしれませんが、Windows PowerShell のコマンド名を最初から覚えなくても近い結果を得ることができます。第二に、"指先が覚えている感覚" によって生じる入力ミスを回避できるという点です。こうした入力ミスは、既に他のシェルを使い慣れたユーザーが、新しいシェルの使い方を習得しようとするときの障壁になります。何年もの間 Cmd.exe を使用しているユーザーが、出力が画面いっぱいになったので出力をクリアしようと思ったとします。その場合、反射的に cls コマンドを入力し、Enter キーを押すことが考えられます。Windows PowerShell の Clear-Host 関数にエイリアスがなければ、"'cls' is not recognized as a cmdlet, function, operable program, or script file." というエラー メッセージが表示されるだけで、どうすれば出力をクリアできるのかわからず途方に暮れることになります。

次の表は、Cmd.exe と UNIX の一般的なコマンドのうち、Windows PowerShell で使用できるコマンドの一覧です。

cat

dir

mount

rm

cd

echo

move

rmdir

chdir

erase

popd

sleep

clear

h

ps

sort

cls

history

pushd

tee

copy

kill

pwd

type

del

lp

r

write

diff

ls

ren

 

これらのコマンドを反射的に使用している場合は、Get-Alias コマンドを使用して、Windows PowerShell のネイティブ コマンドの実際の名前を調べることができます。

PS> Get-Alias cls

CommandType     Name                            Definition
-----------     ----                            ----------
Alias           cls                             Clear-Host

『Windows PowerShell ユーザー ガイド』で紹介している例では、わかりやすくするため、原則的にエイリアスは使用していません。しかし、エイリアスに精通していると、Windows PowerShell のコードを他のソースから抜粋して利用したり、独自のエイリアスを定義したりする際に便利です。このセクションの残りの部分では、標準的なエイリアスについて説明し、さらに、独自のエイリアスを定義する方法についても取り上げます。

標準的なエイリアスの意味を理解する

これまでに述べてきたエイリアスは、他のインターフェイスとの名前の互換性という観点で定義されたものです。しかし、Windows PowerShell に組み込まれているエイリアスは、一般に簡潔さを重視して定義されています。簡潔な名前は、すばやく入力できるという利点はありますが、それが何の略称であるかを知らないと、意味を解釈することは不可能です。

Windows PowerShell では、わかりやすさと簡潔さを両立するため、よく用いられる動詞と名詞に対する略称を統一することによって一連の標準エイリアスが定義されています。この略称を覚えると、使用頻度の高いコマンドレットのエイリアスは、ひととおり把握できます。たとえば、標準的なエイリアスでは、動詞の GetSet にはそれぞれ g および s という略称が、また、名詞の ItemLocation にはそれぞれ i および l という略称が使用されています。さらに、Command という名詞の略称は cm になります。

以降、具体的な例をいくつか挙げてみます。Get-Item の標準エイリアスは、Get の g と Item の i を組み合わせた gi になります。Set-Item の標準エイリアスは、Set の s と Item の i を組み合わせた si になります。Get-Location の標準エイリアスは、Get の g と Location の l を組み合わせた gl になります。Set-Location の標準エイリアスは、Set の s と Location の l を組み合わせた sl になります。Get-Command の標準エイリアスは、Get の g と Command の cm を組み合わせた gcm になります。Set-Command というコマンドレットは存在しませんが、もし存在するとしたら、標準エイリアスは Set の s と Command の cm を組み合わせた scm になります。Windows PowerShell のエイリアスに精通しているユーザーであれば、仮に scm というエイリアスに遭遇したとしても、それが Set-Command を表すエイリアスであることは容易に推測できます。

新しいエイリアスを作成する

Set-Alias コマンドレットを使用すると、エイリアスを独自に作成できます。たとえば、次のステートメントは、「標準的なエイリアスの意味を理解する」で取り上げた、標準的なコマンドレットのエイリアスを作成する例です。

Set-Alias -Name gi -Value Get-Item
Set-Alias -Name si -Value Set-Item
Set-Alias -Name gl -Value Get-Location
Set-Alias -Name sl -Value Set-Location
Set-Alias -Name gcm -Value Get-Command

これらのコマンドは、Windows PowerShell の起動時に内部的に使用されており、実際にこれらのエイリアスを変更することはできません。実際にこれらのコマンドを実行しようとすると、エイリアスを変更できないことを示すエラーが表示されます。次にその例を示します。

PS> Set-Alias -Name gi -Value Get-Item

Set-Alias : Alias is not writeable because alias gi is read-only or constant and cannot be written to.

At line:1 char:10

+ Set-Alias <<<< -Name gi -Value Get-Item




目次