Windows エクスプローラーでフォルダー システムをナビゲートしているとき、通常は、特定の作業場所 (つまり、現在開いているフォルダー) が存在します。現在のフォルダー内の項目は、それをクリックすることによって簡単に操作できます。Cmd.exe などのコマンドライン インターフェイスの場合、特定のファイルと同じフォルダーを参照していれば、相対的な短い名前を指定するだけで、そのフォルダーにアクセスできます。ファイルへのパス全体を指定する必要はありません。現在のディレクトリは、作業ディレクトリと呼ばれています。

Windows PowerShell では、Location という名詞を使って作業ディレクトリを参照します。Windows PowerShell には、場所を調べたり操作したりするための一連のコマンドレットが実装されています。

現在の場所の取得 (Get-Location)

現在のディレクトリの場所を調べるには、Get-Location コマンドを入力します。

PS> Get-Location
Path
----
C:\Documents and Settings\PowerUser
注意事項:

Get-Location コマンドレットは、BASH シェルの pwd コマンドに似ています。Set-Location コマンドレットは、Cmd.exe の cd コマンドに似ています。

現在の場所の設定 (Set-Location)

Get-Location コマンドは、Set-Location コマンドと共に使用されます。Set-Location コマンドを使用すると、現在のディレクトリの場所を指定できます。

PS> Set-Location -Path C:\Windows

コマンドを入力しても、コマンドの実行結果について直接的なフィードバックはありません。Windows PowerShell のコマンドのうち、なんらかのアクションを実行するコマンドからは、出力がわずかしか生成されなかったり、まったく生成されないことがほとんどです。このようなコマンドの出力は、あまり役に立たないことが多いからです。Set-Location コマンドの入力時にディレクトリが正常に変更されたかどうかを確認するには、-PassThru パラメーターを指定して Set-Location コマンドを入力します。

PS> Set-Location -Path C:\Windows -PassThru
Path
----
C:\WINDOWS

-PassThru パラメーターは、既定の出力が存在しない場合に、結果に関する情報を取得する目的で使用され、Windows PowerShell の Set 系のほとんどのコマンドで使用できます。

パスの指定には、UNIX や Windows の大半のコマンド シェルと同様、現在の場所に対する相対パスを使用できます。相対パスの一般的な表記では、ピリオド (.) は現在のフォルダーを表し、二重ピリオド (..) は現在の場所の親ディレクトリを表します。

たとえば、現在の場所が "C:\Windows" フォルダーであるとき、ピリオド (.) は "C:\Windows" を、二重ピリオド (..) は "C:" を表します。現在の場所を C ドライブのルートに変更するには、次のように入力します。

PS> Set-Location -Path .. -PassThru

Path

----

C:\

ファイル システムのドライブではない Windows PowerShell ドライブ (HKLM: など) にも、これと同じ手法を使用できます。現在の場所をレジストリ内の HKLM\Software キーに設定するには、次のように入力します。

 PS> Set-Location -Path HKLM:\SOFTWARE -PassThru

Path
----
HKLM:\SOFTWARE

続けて、親ディレクトリ (Windows PowerShell HKLM: ドライブのルート) に移動するには、相対パスを使用して次のように入力します。

PS> Set-Location -Path .. -PassThru

Path
----
HKLM:\

「Set-Location」と入力する代わりに、Set-Location に対する Windows PowerShell の標準エイリアス (cd、chdir、sl) を使用することもできます。次にその例を示します。

cd -Path C:\Windows

chdir -Path .. -PassThru

sl -Path HKLM:\SOFTWARE -PassThru

最近使用した場所の保存および再利用 (Push-Location および Pop-Location)

場所を変更するとき、後で前の場所に戻ることができるように、変更前の場所を記録しておくと便利です。Windows PowerShell の Push-Location は、ディレクトリ パスの変更が順に記録された履歴 (スタック) を作成するコマンドレットです。Pop-Location コマンドレットを使用することにより、ディレクトリ パスの履歴を過去にさかのぼることができます。

たとえば、Windows PowerShell の開始時には、通常、ユーザーのホーム ディレクトリが表示されます。

 PS> Get-Location

Path
----
C:\Documents and Settings\PowerUser 
注意事項:

.NET Framework をはじめとする多くのプログラミング設定において、スタックという言葉には、特別な意味があります。スタック (Stack) とは、本来、何かが積み重なったものという意味です。これと同様に、スタックに対して最後に追加された項目が、最初に取り出されます。スタックに対して項目を追加することを、スタックに項目を "プッシュする" といいます。スタックから項目を取り出すことを、スタックから項目を "ポップする" といいます。

現在の場所をスタックにプッシュした後、Local Settings フォルダーに移動するには、次のように入力します。

 PS> Push-Location -Path "Local Settings"

その後、Local Settings をスタックにプッシュし、Temp フォルダーに移動するには、次のように入力します。

PS> Push-Location -Path Temp

Get-Location コマンドを入力することにより、ディレクトリが変更されたかどうかを確認できます。

PS> Get-Location

Path
----
C:\Documents and Settings\PowerUser\Local Settings\Temp

今度は、Pop-Location コマンドを入力して、最近アクセスしたディレクトリをポップし、そのディレクトリに戻ります。さらに、正しくディレクトリが変更されたかどうかを Get-Location コマンドで確認します。

PS> Pop-Location
PS> Get-Location

Path
----
C:\Documents and Settings\me\Local Settings

Pop-Location コマンドレットの入力時には、Set-Location コマンドレットと同様、-PassThru パラメーターを指定し、入力したディレクトリを表示できます。

PS> Pop-Location -PassThru

Path
----
C:\Documents and Settings\PowerUser

Location コマンドレットにはネットワーク パスも使用できます。サーバー FS01 に Public という共有ディレクトリがあるとき、次のように入力することによって、現在の場所を変更できます。

Set-Location \\FS01\Public

または

Push-Location \\FS01\Public

Push-Location コマンドおよび Set-Location コマンドでは、利用可能な任意のドライブに移動できます。たとえば、ドライブ文字が D のローカル CD-ROM ドライブにデータ CD が挿入されているとき、「Set-Location D:」と入力することによって、この CD ドライブに移動できます。

ドライブが空の場合、次のエラー メッセージが表示されます。

PS> Set-Location D:
Set-Location : Cannot find path 'D:\' because it does not exist.

コマンドライン インターフェイスを使用する場合、利用可能な物理ドライブを調べるという目的において、Windows エクスプローラーはあまり適していません。また、Windows エクスプローラーでは、すべての Windows PowerShell ドライブが表示されません。Windows PowerShell には、Windows PowerShell ドライブを操作するための一連のコマンドが用意されています。次のセクションでは、この点について説明しています。




目次