Udostępnij za pośrednictwem


Set-Location

Ustawia bieżącą lokalizację roboczą na określoną lokalizację.

Składnia

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

Opis

Polecenie Set-Location cmdlet ustawia lokalizację roboczą na określoną lokalizację. Ta lokalizacja może być katalogiem, podkatalogem, lokalizacją rejestru lub dowolną ścieżką dostawcy.

Możesz również użyć parametru StackName , aby utworzyć nazwany stos lokalizacji w bieżącym stosie lokalizacji. Aby uzyskać więcej informacji na temat stosów lokalizacji, zobacz Uwagi.

Przykłady

Przykład 1. Ustawianie bieżącej lokalizacji

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

To polecenie ustawia bieżącą lokalizację na katalog główny HKLM: dysku.

Przykład 2. Ustawianie bieżącej lokalizacji i wyświetlanie tej lokalizacji

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

Path
----
Env:\

PS Env:\>

To polecenie ustawia bieżącą lokalizację na katalog główny Env: dysku. Używa parametru PassThru , aby skierować program PowerShell do zwrócenia obiektu PathInfo reprezentującego lokalizację Env:\ .

Przykład 3. Ustawienie lokalizacji na bieżącą lokalizację na dysku C:

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

Pierwsze polecenie ustawia lokalizację na katalog główny HKLM: dysku u dostawcy rejestru. Drugie polecenie ustawia lokalizację na bieżącą lokalizację C: dysku w dostawcy systemu plików. Gdy nazwa dysku jest określona w formularzu <DriveName>: (bez ukośnika odwrotnego), polecenie cmdlet ustawia lokalizację na bieżącą lokalizację w usłudze PSDrive. Aby uzyskać bieżącą lokalizację w usłudze PSDrive, użyj Get-Location -PSDrive <DriveName> polecenia .

Przykład 4. Ustawienie bieżącej lokalizacji na nazwany stos

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:\

Pierwsze polecenie dodaje bieżącą lokalizację do stosu Ścieżki. Drugie polecenie sprawia, że lokalizacja Ścieżki jest stosem bieżącej lokalizacji. Trzecie polecenie wyświetla lokalizacje w bieżącym stosie lokalizacji.

Polecenia *-Location cmdlet używają bieżącego stosu lokalizacji, chyba że w poleceniu określono inny stos lokalizacji. Aby uzyskać informacje o stosach lokalizacji, zobacz Uwagi.

Parametry

-LiteralPath

Określa ścieżkę lokalizacji. Wartość parametru LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Typ:String
Aliasy:PSPath
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-PassThru

Zwraca obiekt PathInfo reprezentujący lokalizację. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Path

Określ ścieżkę nowej lokalizacji roboczej. Jeśli nie podano żadnej ścieżki, Set-Location domyślnie jest to katalog główny bieżącego użytkownika. Gdy są używane symbole wieloznaczne, polecenie cmdlet wybiera kontener (katalog, klucz rejestru, magazyn certyfikatów), który jest zgodny ze wzorcem z symbolami wieloznacznymi. Jeśli wzorzec wieloznaczny pasuje do więcej niż jednego kontenera, polecenie cmdlet zwróci błąd.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

-StackName

Określa istniejącą nazwę stosu lokalizacji, którą to polecenie cmdlet sprawia, że bieżący stos lokalizacji. Wprowadź nazwę stosu lokalizacji. Aby wskazać nienazwany domyślny stos lokalizacji, wpisz $null lub pusty ciąg ("").

Użycie tego parametru nie zmienia bieżącej lokalizacji. Zmienia on tylko stos używany przez *-Location polecenia cmdlet. Polecenia *-Location cmdlet działają na bieżącym stosie, chyba że użyjesz parametru StackName do określenia innego stosu. Aby uzyskać więcej informacji na temat stosów lokalizacji, zobacz Uwagi.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-UseTransaction

Zawiera polecenie w aktywnej transakcji. Ten parametr jest prawidłowy tylko wtedy, gdy transakcja jest w toku. Aby uzyskać więcej informacji, zobacz about_Transactions.

Typ:SwitchParameter
Aliasy:usetx
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

String

Do tego polecenia cmdlet można przekazać ciąg zawierający ścieżkę, ale nie ścieżkę literału.

Dane wyjściowe

None

Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.

PathInfo

Jeśli używasz parametru PassThru z parametrem Path lub LiteralPath, to polecenie cmdlet zwraca obiekt PathInfo reprezentujący nową lokalizację.

PathInfoStack

Jeśli używasz parametru PassThru z parametrem StackName, to polecenie cmdlet zwraca obiekt PathInfoStack reprezentujący nowy kontekst stosu.

Uwagi

Program Windows PowerShell zawiera następujące aliasy dla programu Set-Location:

  • cd
  • chdir
  • sl

Program PowerShell obsługuje wiele obszarów runspace na proces. Każdy obszar uruchamiania ma własny bieżący katalog. Nie jest to samo co [System.Environment]::CurrentDirectory. Takie zachowanie może być problemem podczas wywoływania interfejsów API platformy .NET lub uruchamiania aplikacji natywnych bez podawania jawnych ścieżek katalogu.

Nawet jeśli polecenia cmdlet lokalizacji ustawiły bieżący katalog dla całego procesu, nie można od niego zależeć, ponieważ inna przestrzeń uruchomieniowa może ją zmienić w dowolnym momencie. Polecenia cmdlet lokalizacji powinny służyć do wykonywania operacji opartych na ścieżkach przy użyciu bieżącego katalogu roboczego specyficznego dla bieżącego obszaru uruchamiania.

Polecenie Set-Location cmdlet jest przeznaczone do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, wpisz Get-PSProvider. Aby uzyskać więcej informacji, zobacz about_Providers.

Stos jest ostatnią, pierwszą listą, w której można uzyskać dostęp tylko do ostatnio dodanego elementu. Elementy są dodawane do stosu w kolejności, w której są używane, a następnie pobierane do użycia w odwrotnej kolejności. Program PowerShell umożliwia przechowywanie lokalizacji dostawców w stosach lokalizacji. Program PowerShell tworzy nienazwany domyślny stos lokalizacji. Można utworzyć wiele nazwanych stosów lokalizacji. Jeśli nie określisz nazwy stosu, program PowerShell używa bieżącego stosu lokalizacji. Domyślnie nienazwana lokalizacja domyślna to bieżący stos lokalizacji, ale możesz użyć Set-Location polecenia cmdlet , aby zmienić bieżący stos lokalizacji.

Aby zarządzać stosami lokalizacji, użyj *-Location poleceń cmdlet w następujący sposób:

  • Aby dodać lokalizację do stosu lokalizacji, użyj Push-Location polecenia cmdlet .

  • Aby uzyskać lokalizację z stosu lokalizacji, użyj Pop-Location polecenia cmdlet .

  • Aby wyświetlić lokalizacje w bieżącym stosie lokalizacji, użyj parametru Get-Location Stack polecenia cmdlet . Aby wyświetlić lokalizacje w nazwanym stosie lokalizacji, użyj parametru StackName .Get-Location

  • Aby utworzyć nowy stos lokalizacji, użyj parametru StackName .Push-Location Jeśli określisz stos, który nie istnieje, Push-Location tworzy stos.

  • Aby utworzyć stos lokalizacji w bieżącym stosie lokalizacji, użyj parametru StackName .Set-Location

Nienazwany domyślny stos lokalizacji jest w pełni dostępny tylko wtedy, gdy jest to bieżący stos lokalizacji. Jeśli ustawisz nazwany stos lokalizacji jako bieżący stos lokalizacji, nie możesz już używać Push-Location poleceń cmdlet lub Pop-Location do dodawania lub pobierania elementów ze stosu domyślnego lub używania Get-Location polecenia cmdlet do wyświetlania lokalizacji w nienazwanym stosie. Aby ustawić bieżący stos bez nazwy, użyj parametru Set-Location StackName polecenia cmdlet z wartością $null lub pustym ciągiem ("").