Get-Location
現在の作業場所に関する情報を取得します。
構文
Get-Location [-PSDrive <string[]>] [-PSProvider <string[]>] [-UseTransaction] [<CommonParameters>]
Get-Location [-Stack] [-StackName <string[]>] [-UseTransaction] [<CommonParameters>]
説明
Get-Location コマンドレットは、pwd (作業ディレクトリの印刷) コマンドとよく似ており、現在のディレクトリを表すオブジェクトを取得します。
Windows PowerShell ドライブ間で移動する場合、Windows PowerShell は各ドライブでの場所を維持します。Get-Location を使用すると、各ドライブでの場所を見つけることができます。
さらに、Get-Location を使用して起動時に現在のディレクトリを取得し、Windows PowerShell プロンプトで現在のディレクトリを表示する関数など、関数やスクリプトで使用できます。
Push-Location コマンドレットを使用してパス スタックに場所を追加した場合は、Get-Location の Stack パラメーターを使用して現在のスタックを表示できます。
パラメーター
-PSDrive <string[]>
指定された Windows PowerShell ドライブ上の現在の場所を取得します。
たとえば、Certificate ドライブの場合、このパラメーターを使用して C: ドライブでの現在の場所を見つけることができます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-PSProvider <string[]>
指定された Windows PowerShell プロバイダーによってサポートされるドライブでの現在の場所を取得します。
指定されたプロバイダーが複数のドライブをサポートしている場合は、Get-Location は最近アクセスしたドライブ上の場所を返します。
たとえば、C: ドライブの場合、このパラメーターを使用して Windows PowerShell レジストリ プロバイダーのドライブでの現在の場所を見つけることができます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Stack
既定のパス スタック内の場所を表示します。
既定のスタックにパスを追加するには、Push-Location コマンドレットを使用します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-StackName <string[]>
指定されたパス スタック内の場所を表示します。
パス スタックを作成するには、Push-Location コマンドレットを使用します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-UseTransaction
コマンドを有効なトランザクションに含めます。このパラメーターは、トランザクションの進行中のみ有効です。詳細については、「about_Transactions」を参照してください。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
なし パイプを使用してこのコマンドレットに入力を渡すことはできません。 |
出力 |
PathInfo オブジェクトまたは StackInfo オブジェクト Stack または StackName パラメーターを使用すると、Get-Location は StackInfo オブジェクトを返します。それ以外の場合は、PathInfo オブジェクトを返します。 |
注
場所はスタックに格納できます。Push-Location コマンドレットは、スタックの上に場所を追加します。Pop-Location コマンドレットは、スタックの最上部で場所を取得します。
PSProvider、PSDrive、Stack、StackName の各パラメーターがどのように相互に影響しあうかは、プロバイダーに依存します。ドライブとそのドライブを公開していないプロバイダーを指定した場合など、エラーになる組み合わせもあります。パラメーターを指定しないと、Get-Location は、現在の作業場所が格納された、プロバイダーの PathInfo オブジェクトを返します。
Get-Location コマンドレットは、プロバイダーによって公開されているデータを使用するように設計されています。セッションで使用可能なプロバイダーの一覧を表示するには、「Get-PSProvider」と入力します。詳細については、「about_Providers」を参照してください。
例 1
C:\PS>get-location
Path
----
C:\WINDOWS
説明
-----------
このコマンドを実行すると、現在の Windows PowerShell ドライブ上の場所が表示されます。
たとえば、C: ドライブにある Windows ディレクトリの場合、そのディレクトリへのパスが表示されます。
例 2
C:\PS>set-location
説明
-----------
これらのコマンドは、Get-Location を使用してさまざまな Windows PowerShell ドライブ上の現在の場所を表示する方法を示します。
最初のコマンドは、Set-Location コマンドレットを使用して、現在の場所を C: ドライブの Windows サブディレクトリに設定します。
C:\PS> set-location C:\Windows
2 番目のコマンドは、Set-Location コマンドレットを使用して、場所を HKLM:\Software\Microsoft レジストリ キーに変更します。HKLM: ドライブ上の場所に移動する場合、Windows PowerShell は C: ドライブ上の場所を維持します。
PS C:\WINDOWS> set-location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft>
3 番目のコマンドは、Set-Location コマンドレットを使用して、場所を "HKCU:\Control Panel\Input Method" レジストリ キーに変更します。
PS HKLM:\Software\Microsoft> set-location 'HKCU:\Control Panel\Input Method'
PS HKCU:\Control Panel\Input Method>
4 番目のコマンドは、Get-Location コマンドレットを使用して、C: ドライブ上の現在の場所を見つけます。このコマンドは、PSDrive パラメーターを使用してドライブを指定します。
PS HKCU:\Control Panel\Input Method> get-location -psdrive c
Path
----
C:\WINDOWS
5 番目のコマンドは Set-Location コマンドレットを使用して C: ドライブに戻ります。このコマンドはサブディレクトリを指定しませんが、Windows PowerShell では保存された場所に戻ります。
PS HKCU:\Control Panel\Input Method> set-location C:
PS C:\WINDOWS>
6 番目のコマンドは、Get-Location コマンドレットを使用して Windows PowerShell レジストリ プロバイダーによってサポートされるドライブ上の現在の場所を見つけます。Get-Location は、最近アクセスしたレジストリ ドライブの場所 HKCU: を返します。
PS C:\WINDOWS> get-location -psprovider registry
Path
----
HKCU:\Control Panel\Input Method
HKLM: ドライブ上の現在の場所を表示するには、PSDrive パラメーターを使用してドライブを指定する必要があります。7 番目のコマンドでこれを行います。
PS C:\WINDOWS> get-location -psdrive HKLM
Path
----
HKLM:\Software\Microsoft
例 3
C:\PS>set-location
説明
-----------
これらのコマンドは、Get-Location の Stack パラメーターおよび StackName パラメーターを使用して既定および代替パス スタックのパスを一覧表示します。
最初のコマンドは、現在の場所を C: ドライブの Windows ディレクトリに設定します。
C:\PS> set-location C:\Windows
2 番目のコマンドは、Push-Location コマンドレットを使用して現在の場所 (C:\Windows) をパス スタックにプッシュしてから、System32 サブディレクトリに移動します。スタックが指定されていないため、現在の場所が既定のスタックにプッシュされます。
C:\WINDOWS>push-location System32
3 番目のコマンドは現在の場所 (C:\Windows\System32) を Stack2 スタックにプッシュしてから場所を WindowsPowerShell サブディレクトリに変更します。
C:\Windows\System32>push-location WindowsPowerShell -stack Stack2
4 番目のコマンドは、Get-Location コマンドレットを使用して、既定のパス スタック上のパスを取得します。
C:\WINDOWS\system32\WindowsPowerShell>get-location -stack
Path
----
C:\WINDOWS
最後のコマンドは、Get-Location の StackName パラメーターを使用して、Stack2 スタック上のパスを取得します。
C:\WINDOWS\system32\WindowsPowerShell>get-location -stackname Stack2
Path
----
C:\WINDOWS\system32
例 4
C:\PS>function prompt { 'PowerShell: ' + (get-location) + '> '}
PowerShell: C:\WINDOWS>
説明
-----------
この例は、Windows PowerShell プロンプトをカスタマイズする方法を示します。プロンプトを定義する関数には、Get-Location コマンドが含まれ、コンソールにプロンプトが表示されるたびに実行されます。
既定の Windows PowerShell プロンプトの形式は、"prompt" という特殊な関数によって定義されます。"prompt" という新しい関数を作成すると、コンソールのプロンプトを変更できます。
現在の prompt 関数を表示するには、次のコマンドを入力します。
get-content function:prompt
このコマンドは、キーワード "function" で始まり、その後に関数名 "prompt" が続きます。関数本文は大かっこ ({}) の中に示されます。
このコマンドは、"PowerShell: " という文字列で始まる新しいプロンプトを定義します。現在の場所を追加するには、promp 関数が呼び出されたときに実行される Get-Location コマンドを使用します。プロンプトは "> " という文字列で終了します。