Get-Location

現在の作業場所または場所スタックに関する情報を取得します。

構文

Get-Location
   [-PSProvider <String[]>]
   [-PSDrive <String[]>]
   [-UseTransaction]
   [<CommonParameters>]
Get-Location
   [-Stack]
   [-StackName <String[]>]
   [-UseTransaction]
   [<CommonParameters>]

説明

このコマンドレットは Get-Location 、印刷作業ディレクトリ (pwd) コマンドと同様に、現在のディレクトリを表すオブジェクトを取得します。

PowerShell ドライブ間を移動すると、PowerShell は各ドライブの場所を保持します。 このコマンドレットを使用して、各ドライブ内の場所を見つけることができます。

このコマンドレットを使用すると、実行時に現在のディレクトリを取得し、PowerShell プロンプトに現在のディレクトリを表示する関数などの関数やスクリプトで使用できます。

このコマンドレットを使用して、場所スタック内の場所を表示することもできます。 詳細については、Stack パラメーターと StackName パラメーターのメモと説明を参照してください。

例 1: 現在のドライブの場所を表示する

このコマンドは、現在の PowerShell ドライブ内の場所を表示します。

PS C:\Windows> Get-Location

Path
----
C:\Windows

たとえば、ドライブのC:ディレクトリ内Windowsにある場合は、そのディレクトリへのパスが表示されます。

例 2: 異なるドライブの現在の場所を表示する

この例では、さまざまな PowerShell ドライブで現在の Get-Location 場所を表示する方法を示します。 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、既定のスタックの内容が表示されます。 StackName パラメーターにはGet-Location、名前付きの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
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

指定した PowerShell プロバイダーでサポートされているドライブ内の現在の場所を取得します。 指定したプロバイダーが複数のドライブをサポートしている場合、このコマンドレットは最近アクセスしたドライブ上の場所を返します。

たとえば、ドライブ内にいる C: 場合は、このパラメーターを使用して、PowerShell レジストリ プロバイダーのドライブ内の現在の場所を検索できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Stack

このコマンドレットは、現在の場所スタックに追加された場所を表示することを示します。 コマンドレットを使用して、スタックに場所を Push-Location 追加できます。

別の場所スタックに場所を表示するには、StackName パラメーターを使用します。 場所スタックの詳細については、「メモ」を参照してください。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StackName

名前付き場所スタックを文字列配列として指定します。 1 つ以上の場所スタック名を入力します。

現在の場所スタック内の場所を表示するには、Stack パラメーターを使用します。 場所スタックを現在の場所スタックにするには、コマンドレットを Set-Location 使用します。

このコマンドレットは、現在のスタックでない限り、名前のない既定のスタック内の場所を表示できません。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UseTransaction

アクティブなトランザクションのコマンドが含まれます。 このパラメーターは、トランザクションが進行中の場合のみ有効です。 詳細については、「about_transactions」を参照してください

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

PathInfo

既定では、このコマンドレットは PathInfo オブジェクトを返します。

PathInfoStack

Stack または StackName パラメーターを使用すると、このコマンドレットは PathInfoStack オブジェクトを返します。

メモ

Windows PowerShell には、次のエイリアスが Get-Location含まれています。

  • gl
  • pwd

PowerShell では、プロセスごとに複数の実行空間がサポートされます。 各実行空間には、独自 の現在のディレクトリがあります。 これは同じ [System.Environment]::CurrentDirectoryではありません. この動作は、.NET API を呼び出したり、明示的なディレクトリ パスを指定せずにネイティブ アプリケーションを実行したりする場合に問題になる可能性があります。 コマンドレットは Get-Location 、現在の PowerShell 実行空間の現在のディレクトリを返します。

このコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッション内のプロバイダーを一覧表示するには、「.」と入力します Get-PSProvider。 詳細については、「about_Providers」を参照してください

PSProvider、PSDriveStack、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スタックから項目を追加または取得したり、このコマンドレットを使用して名前のないスタック内の場所を表示したりできなくなります。 名前のないスタックを現在のスタックにするには、コマンドレットの StackName パラメーターを値または空の$nullSet-Location文字列 ("") と共に使用します。