Set-Location

현재 작업 위치를 지정된 위치로 설정합니다.

Syntax

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

Description

cmdlet은 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 매개 변수를 사용하여 PowerShell이 위치를 나타내는 PathInfo 개체를 반환하도록 지시합니다Env:\.

예제 3: C: 드라이브의 현재 위치로 위치 설정

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

첫 번째 명령은 레지스트리 공급자에서 드라이브의 HKLM: 루트로 위치를 설정합니다. 두 번째 명령은 FileSystem 공급자에서 C: 드라이브의 현재 위치로 위치를 설정합니다. 드라이브 이름을 백슬래시 없이 형식 <DriveName>: 으로 지정하면 cmdlet은 위치를 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:\

첫 번째 명령은 경로 스택에 현재 위치를 추가합니다. 두 번째 명령은 경로 위치 스택을 현재 위치 스택으로 만듭니다. 세 번째 명령은 현재 위치 스택의 위치를 표시합니다.

*-Location 명령에서 다른 위치 스택을 지정하지 않는 한 cmdlet은 현재 위치 스택을 사용합니다. 위치 스택에 대한 자세한 내용은 노트를 참조하세요.

예제 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 개체를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.

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

-Path

새 작업 위치의 경로를 지정합니다. 경로가 제공되지 Set-Location 않으면 기본값은 현재 사용자의 홈 디렉터리입니다. wild카드s를 사용하는 경우 cmdlet은 wild카드 패턴과 일치하는 컨테이너(디렉터리, 레지스트리 키, 인증서 저장소)를 선택합니다. wild카드 패턴이 둘 이상의 컨테이너와 일치하는 경우 cmdlet은 오류를 반환합니다.

PowerShell은 사용자가 설정한 마지막 20개 위치의 기록을 유지합니다. Path 매개 변수 값이 - 문자인 경우 새 작업 위치는 기록의 이전 작업 위치(있는 경우)가 됩니다. 마찬가지로 값이 문자인 + 경우 새 작업 위치는 기록의 다음 작업 위치(있는 경우)가 됩니다. 이는 기록이 스택이 아닌 목록이며 수동으로 제어되지 않고 암시적으로 추적된다는 점을 제외하고 사용 Pop-LocationPush-Location 과 유사합니다. 기록 목록을 볼 수 있는 방법은 없습니다.

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

-StackName

이 cmdlet이 현재 위치 스택을 만드는 기존 위치 스택 이름을 지정합니다. 위치 스택 이름을 입력합니다. 명명되지 않은 기본 위치 스택을 나타내려면 빈 문자열("")을 입력 $null 하거나 입력합니다.

이 매개 변수를 사용하면 현재 위치가 변경되지 않습니다. cmdlet에서 사용하는 *-Location 스택만 변경합니다. StackName 매개 변수를 사용하여 다른 스택을 지정하지 않는 한 cmdlet은 *-Location 현재 스택에서 작동합니다. 위치 스택에 대한 자세한 내용은 노트를 참조하세요.

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

입력

String

리터럴 경로가 아닌 경로가 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.

출력

None

기본적으로 이 cmdlet은 출력을 반환하지 않습니다.

PathInfo

Path 또는 LiteralPath와 함께 PassThru 매개 변수를 사용하는 경우 이 cmdlet은 새 위치를 나타내는 PathInfo 개체를 반환합니다.

PathInfoStack

StackName에서 PassThru 매개 변수를 사용하는 경우 이 cmdlet은 새 스택 컨텍스트를 나타내는 PathInfoStack 개체를 반환합니다.

참고

PowerShell에는 다음 별칭이 포함됩니다.Set-Location

  • 모든 플랫폼:
    • cd
    • chdir
    • sl

PowerShell은 프로세스당 여러 Runspace를 지원합니다. 각 Runspace에는 고유한 현재 디렉터리가 있습니다. 이 값은 .와 동일 [System.Environment]::CurrentDirectory하지 않습니다. 이 동작은 명시적 디렉터리 경로를 제공하지 않고 .NET API를 호출하거나 네이티브 애플리케이션을 실행할 때 문제가 될 수 있습니다.

위치 cmdlet이 프로세스 전체의 현재 디렉터리를 설정했더라도 다른 Runspace에서 언제든지 변경할 수 있으므로 이 디렉터리에 의존할 수 없습니다. 위치 cmdlet을 사용하여 현재 Runspace와 관련된 현재 작업 디렉터리를 사용하여 경로 기반 작업을 수행해야 합니다.

cmdlet Set-Location 은 모든 공급자가 노출하는 데이터와 함께 작동하도록 설계되었습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 .를 입력 Get-PSProvider합니다. 자세한 내용은 about_Providers 참조하세요.

스택은 가장 최근에 추가된 항목만 액세스할 수 있는 마지막 첫 번째 목록입니다. 항목을 사용하는 순서대로 스택에 추가한 다음 역순으로 사용할 항목을 검색합니다. PowerShell을 사용하면 위치 스택에 공급자 위치를 저장할 수 있습니다. PowerShell은 명명되지 않은 기본 위치 스택을 만듭니다. 여러 명명된 위치 스택을 만들 수 있습니다. 스택 이름을 지정하지 않으면 PowerShell은 현재 위치 스택을 사용합니다. 기본적으로 명명되지 않은 기본 위치는 현재 위치 스택이지만 cmdlet을 Set-Location 사용하여 현재 위치 스택을 변경할 수 있습니다.

위치 스택을 관리하려면 다음과 같이 cmdlet을 사용합니다 *-Location .

  • 위치 스택에 위치를 추가하려면 cmdlet을 Push-Location 사용합니다.

  • 위치 스택에서 위치를 얻으려면 cmdlet을 Pop-Location 사용합니다.

  • 현재 위치 스택의 위치를 표시하려면 cmdlet의 Stack 매개 변수를 Get-Location 사용합니다. 명명된 위치 스택에 위치를 표시하려면 StackName 매개 변수를 Get-Location사용합니다.

  • 새 위치 스택을 만들려면 의 StackName 매개 변수Push-Location를 사용합니다. 존재하지 Push-Location 않는 스택을 지정하면 스택이 만들어집니다.

  • 위치 스택을 현재 위치 스택으로 만들려면 의 StackName 매개 변수Set-Location사용합니다.

이름 없는 기본 위치 스택은 현재 위치 스택인 경우에만 완전히 액세스할 수 있습니다. 명명된 위치 스택을 현재 위치 스택으로 만드는 경우 더 이상 cmdlet을 Pop-Location 사용하여 Push-Location 기본 스택에서 항목을 추가하거나 가져오거나 cmdlet을 사용하여 Get-Location 명명되지 않은 스택의 위치를 표시할 수 없습니다. 명명되지 않은 스택을 현재 스택으로 만들려면 cmdlet의 StackName 매개 변수를 값 $null 또는 빈 문자열("")과 함께 사용합니다.Set-Location