次の方法で共有


Set-Location

現在の作業場所を、指定された場所に設定します。

構文

Set-Location
   [[-Path] <String>]
   [-PassThru]
   [<CommonParameters>]
Set-Location
   -LiteralPath <String>
   [-PassThru]
   [<CommonParameters>]
Set-Location
   [-PassThru]
   [-StackName <String>]
   [<CommonParameters>]

説明

コマンドレットは Set-Location 、指定した場所に作業場所を設定します。 その場所には、ディレクトリ、サブディレクトリ、レジストリの場所、または任意のプロバイダー パスを指定できます。

PowerShell 6.2 では、 と の-+サポートが Path パラメーターの値として追加されました。 PowerShell では、 と +でアクセスできる最後の 20 の場所の履歴が保持されます-。 この一覧は、 StackName パラメーターを使用してアクセスされる場所スタックとは独立しています。

例 1: 現在の場所を設定する

PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>

このコマンドは、現在の場所をドライブのルートに HKLM: 設定します。

例 2: 現在の場所を設定し、その場所を表示する

PS C:\> Set-Location -Path "Env:\" -PassThru

Path
----
Env:\

PS Env:\>

このコマンドは、現在の場所をドライブのルートに Env: 設定します。 PassThru パラメーターを使用して、場所を表す PathInfo オブジェクトを返すように PowerShell にEnv:\指示します。

例 3: C: ドライブの現在の場所に場所を設定する

PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>

最初のコマンドは、レジストリ プロバイダー内のドライブの HKLM: ルートに場所を設定します。 2 番目のコマンドは、FileSystem プロバイダー内のドライブの現在の C: 場所に場所を設定します。 ドライブ名が (円記号なしで) 形式 <DriveName>: で指定されている場合、コマンドレットは PSDrive 内の現在の場所に場所を設定します。 PSDrive で現在の場所を取得するには、 コマンドを使用 Get-Location -PSDrive <DriveName> します。

例 4: 現在の場所を名前付きスタックに設定する

PS C:\> Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"
PS C:\Program Files\PowerShell\> Set-Location -StackName "Paths"
PS C:\Program Files\PowerShell\> Get-Location -Stack

Path
----
C:\

最初のコマンドは、現在の場所をパス スタックに追加します。 2 番目のコマンドは、パスの場所スタックを現在の場所スタックにします。 3 番目のコマンドは、現在の場所スタック内の場所を表示します。

コマンドレットは *-Location 、 コマンドで別の場所スタックが指定されていない限り、現在の場所スタックを使用します。 場所スタックの詳細については、「 メモ」を参照してください。

例 5: '+' または '-' を使用して場所履歴を移動する

PS C:\> Set-Location -Path $env:SystemRoot
PS C:\Windows> Set-Location -Path Cert:\
PS Cert:\> Set-Location -Path HKLM:\
PS HKLM:\>

# Navigate back through the history using "-"
PS HKLM:\> Set-Location -Path -
PS Cert:\> Set-Location -Path -
PS C:\Windows>

# Navigate using the Set-Location alias "cd" and the implicit positional Path parameter
PS C:\Windows> cd -
PS C:\> cd +
PS C:\Windows> cd +
PS Cert:\>

エイリアスを使用するか、 cd - ターミナル cd + で位置情報履歴を簡単に移動できます。 を使用して移動する -/+方法の詳細については、 Path パラメーターを参照してください。

パラメーター

-LiteralPath

場所のパスを指定します。 LiteralPath パラメーターの値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 一重引用符は、文字をエスケープ シーケンスとして解釈しないように PowerShell に指示します。

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

場所を表す PathInfo オブジェクトを返します。 既定では、このコマンドレットによる出力はありません。

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

-Path

新しい作業場所のパスを指定します。 パスが指定されていない場合、 Set-Location 既定では現在のユーザーのホーム ディレクトリが使用されます。 ワイルドカードを使用すると、コマンドレットはワイルドカード パターンに一致するコンテナー (ディレクトリ、レジストリ キー、証明書ストア) を選択します。 ワイルドカード パターンが複数のコンテナーと一致する場合、コマンドレットはエラーを返します。

PowerShell では、設定した最後の 20 の場所の履歴が保持されます。 Path パラメーターの値が文字の-場合、新しい作業場所は履歴内の以前の作業場所になります (存在する場合)。 同様に、値が文字の + 場合、新しい作業場所は履歴内の次の作業場所になります (存在する場合)。 これは を使用 Pop-Location するのと Push-Location 似ていますが、履歴はスタックではなくリストであり、手動で制御されずに暗黙的に追跡される点が除きます。 履歴リストを表示する方法はありません。

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-StackName

このコマンドレットが現在の場所スタックを作成する既存の場所スタック名を指定します。 場所スタック名を入力します。 名前のない既定の場所スタックを示すには、または空の文字列 ("") を入力$nullします。

このパラメーターを使用しても、現在の場所は変更されません。 コマンドレットによって *-Location 使用されるスタックのみが変更されます。 コマンドレットは *-LocationStackName パラメーターを使用して別のスタックを指定しない限り、現在のスタックで動作します。 場所スタックの詳細については、「 メモ」を参照してください。

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

入力

String

このコマンドレットには、リテラル パスではなく、パスを含む文字列をパイプできます。

出力

None

既定では、このコマンドレットは出力を返しません。

PathInfo

Path または LiteralPathPassThru パラメーターを使用すると、このコマンドレットは新しい場所を表す PathInfo オブジェクトを返します。

PathInfoStack

StackNamePassThru パラメーターを使用すると、このコマンドレットは新しいスタック コンテキストを表す PathInfoStack オブジェクトを返します。

メモ

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

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

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

location コマンドレットによってプロセス全体の現在のディレクトリが設定された場合でも、別の実行空間によっていつでも変更される可能性があるため、それに依存することはできません。 location コマンドレットを使用して、現在の実行空間に固有の現在の作業ディレクトリを使用してパスベースの操作を実行する必要があります。

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

スタックは、最後に追加された項目にのみアクセスできる、最後に追加された先入れ先出しリストです。 使用した順序でスタックに項目を追加し、その後、逆の順序で使用するために項目を取得します。 PowerShell を使用すると、プロバイダーの場所を場所スタックに格納できます。 PowerShell では、名前のない既定の場所スタックが作成されます。 複数の名前付き場所スタックを作成できます。 スタック名を指定しない場合、PowerShell は現在の場所のスタックを使用します。 既定では、名前のない既定の場所は現在の場所スタックですが、 コマンドレットを Set-Location 使用して現在の場所スタックを変更できます。

場所スタックを管理するには、次のように コマンドレットを *-Location 使用します。

  • 場所スタックに場所を追加するには、 コマンドレットを Push-Location 使用します。

  • 場所スタックから場所を取得するには、 コマンドレットを Pop-Location 使用します。

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

  • 新しい場所スタックを作成するには、 の StackName パラメーターを使用します Push-Location。 存在しないスタックを指定した場合は、 Push-Location スタックを作成します。

  • 場所スタックを現在の場所スタックにするには、 の StackName パラメーターを使用します Set-Location

名前のない既定の場所スタックは、現在の場所スタックになっている場合にだけ、完全にアクセスできます。 名前付き場所スタックを現在の場所スタックにした場合、または Pop-Location コマンドレットをPush-Location使用して既定のスタックから項目を追加または取得したり、 コマンドレットをGet-Location使用して名前のないスタック内の場所を表示したりできなくなります。 名前のないスタックを現在のスタックにするには、 コマンドレットの StackName パラメーターを値または空のSet-Location$null文字列 ("") と共に使用します。