Get-Location
現在の作業場所または場所スタックに関する情報を取得します。
構文
Get-Location
[-PSProvider <String[]>]
[-PSDrive <String[]>]
[<CommonParameters>]
Get-Location
[-Stack]
[-StackName <String[]>]
[<CommonParameters>]
説明
コマンドレットは Get-Location
、印刷作業ディレクトリ (pwd) コマンドと同様に、現在のディレクトリを表す オブジェクトを取得します。
PowerShell ドライブ間を移動すると、PowerShell は各ドライブに自分の場所を保持します。 このコマンドレットを使用して、各ドライブ内の場所を見つけることができます。
このコマンドレットを使用すると、実行時に現在のディレクトリを取得し、PowerShell プロンプトに現在のディレクトリを表示する関数などの関数やスクリプトで使用できます。
このコマンドレットを使用して、場所スタック内の場所を表示することもできます。 詳細については、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: スタックを使用して場所を取得する
この例では、 の Stack パラメーターと StackName パラメーター Get-Location
を使用して、現在の場所スタックと代替の場所スタック内の場所を一覧表示する方法を示します。
コマンドレットは Push-Location
、3 つの異なる場所に変更するために使用されます。 3 番目のプッシュでは、別のスタック名が使用されます。 の Stack パラメーター Get-Location
には、既定のスタックの内容が表示されます。 の 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:
見つけることができます。
Type: | String[] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PSProvider
指定した PowerShell プロバイダーでサポートされているドライブ内の現在の場所を取得します。 指定したプロバイダーが複数のドライブをサポートしている場合、このコマンドレットは、最近アクセスしたドライブ上の場所を返します。
たとえば、ドライブ内にいる C:
場合は、このパラメーターを使用して、PowerShell レジストリ プロバイダーのドライブ内の現在の場所を見つけることができます。
Type: | String[] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Stack
このコマンドレットは、現在の場所スタックに追加された場所を表示することを示します。 コマンドレットを使用して、スタックに場所を Push-Location
追加できます。
別の場所スタック内の場所を表示するには、 StackName パラメーターを使用します。 場所スタックの詳細については、「 メモ」を参照してください。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StackName
名前付き場所スタックを文字列配列として指定します。 1 つ以上の場所スタック名を入力します。
現在の場所スタック内の場所を表示するには、 Stack パラメーターを使用します。 場所スタックを現在の場所スタックにするには、 コマンドレットを Set-Location
使用します。
このコマンドレットは、現在のスタックでない限り、名前のない既定のスタック内の場所を表示できません。
Type: | String[] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | 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
使用します。現在の場所スタック内の場所を表示するには、 コマンドレットの Stack パラメーターを
Get-Location
使用します。 名前付き場所スタック内の場所を表示するには、 コマンドレットの StackName パラメーターをGet-Location
使用します。新しい場所スタックを作成するには、 コマンドレットの StackName パラメーターを
Push-Location
使用します。 存在しないスタックを指定した場合は、Push-Location
スタックを作成します。場所スタックを現在の場所スタックにするには、 コマンドレットの StackName パラメーターを
Set-Location
使用します。
名前のない既定の場所スタックは、現在の場所スタックになっている場合にだけ、完全にアクセスできます。
名前付き場所スタックを現在の場所スタックにした場合、 または Pop-Location
コマンドレットを使用Push-Location
して既定のスタックから項目を追加または取得したり、このコマンドレットを使用して名前のないスタック内の場所を表示したりできなくなります。 名前のないスタックを現在のスタックにするには、 の値または空の文字列 (""
) を指定してSet-Location
、コマンドレットの $null
StackName パラメーターを使用します。
関連リンク
フィードバック
フィードバックの送信と表示