Get-Location
現在の作業場所または場所スタックに関する情報を取得します。
構文
Get-Location
[-PSProvider <String[]>]
[-PSDrive <String[]>]
[<CommonParameters>]
Get-Location
[-Stack]
[-StackName <String[]>]
[<CommonParameters>]
説明
Get-Location
コマンドレットは、印刷作業ディレクトリ (pwd) コマンドと同様に、現在のディレクトリを表すオブジェクトを取得します。
PowerShell ドライブ間を移動すると、PowerShell は各ドライブの場所を保持します。 このコマンドレットを使用して、各ドライブ内の場所を見つけることができます。
このコマンドレットを使用すると、実行時に現在のディレクトリを取得し、PowerShell プロンプトに現在のディレクトリを表示する関数などの関数やスクリプトで使用できます。
このコマンドレットを使用して、場所スタック内の場所を表示することもできます。 詳細については、notes および Stack および StackName パラメーターの説明を参照してください。
例
例 1: 現在のドライブの場所を表示する
このコマンドは、現在の PowerShell ドライブ内の場所を表示します。
PS C:\Windows> Get-Location
Path
----
C:\Windows
たとえば、C:
ドライブのWindows
ディレクトリ内にある場合は、そのディレクトリへのパスが表示されます。
例 2: 異なるドライブの現在の場所を表示する
この例では、 Get-Location
を使用して、別の PowerShell ドライブに現在の場所を表示する方法を示します。 Set-Location
は、異なる PSDrive 上の複数の異なるパスに場所を変更するために使用されます。
PS C:\> Set-Location C:\Windows
PS C:\Windows> Set-Location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft> Set-Location "HKCU:\Control Panel\Input Method"
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive C
Path
----
C:\Windows
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive HKLM
Path
----
HKLM:\Software\Microsoft
PS HKCU:\Control Panel\Input Method> Set-Location C:
PS C:\Windows> Get-Location -PSProvider Registry
Path
----
HKCU:\Control Panel\Input Method
例 3: スタックを使用して場所を取得する
この例では、Get-Location
の Stack および StackName パラメーターを使用して、現在の場所スタックと代替の場所スタック内の場所を一覧表示する方法を示します。
Push-Location
コマンドレットは、3 つの異なる場所に変更するために使用されます。 3 番目のプッシュでは、別のスタック名が使用されます。 Get-Location
の Stack パラメーターには、既定のスタックの内容が表示されます。 Get-Location
の StackName パラメーターには、Stack2
という名前のスタックの内容が表示されます。
PS C:\> Push-Location C:\Windows
PS C:\Windows>Push-Location System32
PS C:\Windows\System32>Push-Location WindowsPowerShell -StackName Stack2
C:\Windows\System32\WindowsPowerShell>Get-Location -Stack
Path
----
C:\Windows
C:\
C:\Windows\System32\WindowsPowerShell>Get-Location -StackName Stack2
Path
----
C:\Windows\System32
例 4: PowerShell プロンプトをカスタマイズする
この例では、PowerShell プロンプトをカスタマイズする方法を示します。
PS C:\>
function prompt { 'PowerShell: ' + (Get-Location) + '> '}
PowerShell: C:\>
プロンプトを定義する関数には、 Get-Location
コマンドが含まれています。このコマンドは、コンソールにプロンプトが表示されるたびに実行されます。
既定の PowerShell プロンプトの形式は、 prompt
という名前の特殊な関数によって定義されます。 コンソールでプロンプトを変更するには、 prompt
という名前の新しい関数を作成します。
現在のプロンプト関数を表示するには、次のコマンドを入力します。 Get-Content Function:\prompt
パラメーター
-PSDrive
指定した PowerShell ドライブ内の現在の場所を取得します。
たとえば、 Cert:
ドライブにいる場合は、このパラメーターを使用して、 C:
ドライブ内の現在の場所を見つけることができます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-PSProvider
指定した PowerShell プロバイダーでサポートされているドライブ内の現在の場所を取得します。 指定したプロバイダーが複数のドライブをサポートしている場合、このコマンドレットは最近アクセスしたドライブ上の場所を返します。
たとえば、 C:
ドライブにいる場合は、このパラメーターを使用して、PowerShell Registry プロバイダーのドライブ内の現在の場所を検索できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Stack
このコマンドレットは、現在の場所スタックに追加された場所を表示することを示します。 Push-Location
コマンドレットを使用して、スタックに場所を追加できます。
別の場所スタック内の場所を表示するには、 StackName パラメーターを使用します。 場所スタックの詳細については、 Notesを参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-StackName
名前付き場所スタックを文字列配列として指定します。 1 つ以上の場所スタック名を入力します。
現在の場所スタック内の場所を表示するには、 Stack パラメーターを使用します。 場所スタックを現在の場所スタックにするには、 Set-Location
コマンドレットを使用します。
このコマンドレットは、現在のスタックでない限り、名前のない既定のスタック内の場所を表示できません。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
既定では、このコマンドレットは PathInfo オブジェクトを返します。
Stack または StackName パラメーターを使用すると、このコマンドレットは PathInfoStack オブジェクトを返します。
メモ
PowerShell には、 Get-Location
の次のエイリアスが含まれています。
すべてのプラットフォーム:
gl
pwd
PowerShell では、プロセスごとに複数の実行空間がサポートされます。 各実行空間には、独自の 現在のディレクトリがあります。
これは、 [System.Environment]::CurrentDirectory
と同じではありません。 この動作は、.NET API を呼び出したり、明示的なディレクトリ パスを指定せずにネイティブ アプリケーションを実行したりする場合に問題になる可能性があります。
Get-Location
コマンドレットは、現在の PowerShell 実行空間の現在のディレクトリを返します。
このコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッション内のプロバイダーを一覧表示するには、「 Get-PSProvider
」と入力します。 詳細については、「 about_Providers」を参照してください。
PSProvider、PSDrive、Stack、および StackName パラメーターが対話する方法は、プロバイダーによって異なります。 ドライブとそのドライブを公開していないプロバイダーを指定した場合など、エラーになる組み合わせもあります。 パラメーターが指定されていない場合、このコマンドレットは現在の作業場所を含むプロバイダーの PathInfo オブジェクトを返します。
スタックは、最後に追加された項目にのみアクセスできる、最後に追加された先入れ先出しリストです。 使用した順序でスタックに項目を追加し、その後、逆の順序で使用するために項目を取得します。 PowerShell を使用すると、プロバイダーの場所を場所スタックに格納できます。 PowerShell では、名前のない既定の場所スタックが作成され、複数の名前付き場所スタックを作成できます。 スタック名を指定しない場合、PowerShell は現在の場所スタックを使用します。 既定では、名前のない既定の場所は現在の場所スタックですが、 Set-Location
コマンドレットを使用して現在の場所のスタックを変更できます。
場所スタックを管理するには、次のように PowerShell *-Location
コマンドレットを使用します。
場所スタックに場所を追加するには、
Push-Location
コマンドレットを使用します。場所スタックから場所を取得するには、
Pop-Location
コマンドレットを使用します。現在の場所スタックの場所を表示するには、
Get-Location
コマンドレットの Stack パラメーターを使用します。 名前付き場所スタックに場所を表示するには、Get-Location
コマンドレットの StackName パラメーターを使用します。新しい場所スタックを作成するには、
Push-Location
コマンドレットの StackName パラメーターを使用します。 存在しないスタックを指定した場合、Push-Location
はスタックを作成します。場所スタックを現在の場所スタックにするには、
Set-Location
コマンドレットの StackName パラメーターを使用します。
名前のない既定の場所スタックは、現在の場所スタックになっている場合にだけ、完全にアクセスできます。
名前付き場所スタックを現在の場所スタックにした場合、 Push-Location
または Pop-Location
コマンドレットを使用して既定のスタックから項目を追加または取得したり、このコマンドレットを使用して名前のないスタック内の場所を表示したりできなくなります。 名前のないスタックを現在のスタックにするには、Set-Location
コマンドレットの StackName パラメーターを使用し、値$null
または空の文字列 (""
) を指定します。
関連リンク
PowerShell