次の方法で共有


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-LocationStack および StackName パラメーターを使用して、現在の場所スタックと代替の場所スタック内の場所を一覧表示する方法を示します。

Push-Location コマンドレットは、3 つの異なる場所に変更するために使用されます。 3 番目のプッシュでは、別のスタック名が使用されます。 Get-LocationStack パラメーターには、既定のスタックの内容が表示されます。 Get-LocationStackName パラメーターには、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

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

PathInfoStack

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

メモ

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

  • すべてのプラットフォーム:

    • gl
    • pwd

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

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

PSProviderPSDriveStack、および 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または空の文字列 ("") を指定します。