Set-Location
現在の作業場所を指定した場所に設定します。
構文
Path (既定)
Set-Location
[[-Path] <String>]
[-PassThru]
[<CommonParameters>]
LiteralPath
Set-Location
-LiteralPath <String>
[-PassThru]
[<CommonParameters>]
Stack
Set-Location
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
説明
Set-Location コマンドレットは、作業場所を指定した場所に設定します。 その場所には、ディレクトリ、サブディレクトリ、レジストリの場所、または任意のプロバイダー パスを指定できます。
PowerShell 6.2 では、- パラメーターの値として、+ と のサポートが追加されました。 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 パラメーターを使用して、 の場所を表す Env:\ オブジェクトを返すように PowerShell に指示します。
例 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 コマンドレットは、コマンドで別の場所スタックが指定されていない限り、現在の場所スタックを使用します。 ロケーション スタックの詳細については、「Notes」を参照してください。
例 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 に指示します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | PSPath, LP |
パラメーター セット
LiteralPath
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-PassThru
場所を表す PathInfo オブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Path
新しい作業場所のパスを指定します。 パスが指定されていない場合、Set-Location は既定で現在のユーザーのホーム ディレクトリに設定されます。 ワイルドカードを使用すると、コマンドレットは、ワイルドカード パターンに一致するコンテナー (ディレクトリ、レジストリ キー、証明書ストア) を選択します。 ワイルドカード パターンが複数のコンテナーと一致する場合、コマンドレットはエラーを返します。
PowerShell では、設定した最後の 20 の場所の履歴が保持されます。
Path パラメーター値が - 文字の場合、新しい作業場所は履歴内の以前の作業場所になります (存在する場合)。 同様に、値が + 文字の場合、新しい作業場所は履歴内の次の作業場所になります (存在する場合)。 これは、履歴がスタックではなくリストであり、手動で制御されずに暗黙的に追跡される点を除いて、Pop-Location と Push-Location の使用に似ています。 履歴リストを表示する方法はありません。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | True |
| DontShow: | False |
パラメーター セット
Path
| 配置: | 0 |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-StackName
このコマンドレットで現在の場所スタックを作成する既存の場所スタック名を指定します。 場所スタック名を入力します。 名前のない既定の場所スタックを示すには、$null または空の文字列 ("") を入力します。
このパラメーターを使用しても、現在の場所は変更されません。
*-Location コマンドレットによって使用されるスタックのみが変更されます。
*-Location コマンドレットは、StackName パラメーターを使用して別のスタックを指定しない限り、現在のスタックで動作します。 ロケーション スタックの詳細については、Notesを参照してください。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
Stack
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
String
文字列に含まれるパスは、このコマンドレットにパイプできますが、リテラル パスはパイプできません。
出力
None
既定では、このコマンドレットは出力を返しません。
PathInfo
Path または LiteralPath PassThru パラメーターを使用すると、このコマンドレットは新しい場所を表す PathInfo オブジェクトを返します。
PathInfoStack
PassThru パラメーターを StackName と共使用すると、このコマンドレットは新しいスタック コンテキストを表す PathInfoStack オブジェクトを返します。
メモ
PowerShell には、Set-Locationの次のエイリアスが含まれています。
- すべてのプラットフォーム:
cdchdirsl
PowerShell では、プロセスごとに複数の実行空間がサポートされます。 各実行空間には、独自の 現在のディレクトリがあります。
これは [System.Environment]::CurrentDirectoryと同じではありません. この動作は、.NET API を呼び出したり、明示的なディレクトリ パスを指定せずにネイティブ アプリケーションを実行したりする場合に問題になる可能性があります。
場所コマンドレットによってプロセス全体の現在のディレクトリが設定された場合でも、別の実行空間によっていつでも変更される可能性があるため、それに依存することはできません。 location コマンドレットを使用して、現在の実行空間に固有の現在の作業ディレクトリを使用してパスベースの操作を実行する必要があります。
Set-Location コマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「Get-PSProvider」と入力します。 詳細については、about_Providersを参照してください。
スタックは、最後に追加された項目にのみアクセスできる、最後に追加された先入れ先出しリストです。 アイテムを使用する順序でスタックに追加し、逆の順序で使用するためにアイテムを取得します。 PowerShell を使用すると、プロバイダーの場所を場所スタックに格納できます。 PowerShell では、名前のない既定の場所スタックが作成されます。 複数の名前付き場所スタックを作成できます。 スタック名を指定しない場合、PowerShell は現在の場所スタックを使用します。 既定では、名前のない既定の場所は現在の場所スタックですが、Set-Location コマンドレットを使用して現在の場所スタックを変更できます。
場所スタックを管理するには、次のように *-Location コマンドレットを使用します。
場所スタックに場所を追加するには、
Push-Locationコマンドレットを使用します。場所スタックから場所を取得するには、
Pop-Locationコマンドレットを使用します。現在の場所スタックの場所を表示するには、 コマンドレットの
Get-Locationパラメーターを使用します。 名前付き場所スタック内の場所を表示するには、のGet-Locationパラメーターを使用します。新しい場所スタックを作成するには、の
Push-Locationパラメーターを使用します。 存在しないスタックを指定した場合は、スタックPush-Location作成されます。場所スタックを現在の場所スタックにするには、の
Set-Locationパラメーターを使用します。
名前のない既定の場所スタックは、現在の場所スタックである場合にのみ完全にアクセスできます。
名前付き場所スタックを現在の場所スタックにした場合、Push-Location または Pop-Location コマンドレットを使用して既定のスタックから項目を追加または取得したり、Get-Location コマンドレットを使用して名前のないスタック内の場所を表示したりできなくなります。 名前のないスタックを現在のスタックにするには、 コマンドレットの Set-Location パラメーターを使用し、値 $null または空の文字列 ("") を指定します。