Set-Location
Ustawia bieżącą lokalizację roboczą na określoną lokalizację.
Składnia
Set-Location
[[-Path] <String>]
[-PassThru]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[<CommonParameters>]
Set-Location
[-PassThru]
[-StackName <String>]
[<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.
Program PowerShell 6.2 dodał obsługę -
parametru Path i +
jako wartości. Program PowerShell przechowuje historię ostatnich 20 lokalizacji, do których można uzyskać dostęp za pomocą poleceń -
i +
. Ta lista jest niezależna od stosu lokalizacji, do którego uzyskuje się dostęp przy użyciu parametru StackName .
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 przekierować program PowerShell do zwrócenia obiektu PathInfo , który reprezentuje 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 u 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. Ustawianie 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 powoduje, że stos lokalizacji Ś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.
Przykład 5. Nawigowanie po historii lokalizacji przy użyciu ciągu "+" lub "-"
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:\>
Użycie aliasu cd -
lub cd +
jest łatwym sposobem na poruszanie się po historii lokalizacji w terminalu. Aby uzyskać więcej informacji na temat nawigowania za pomocą -
/+
polecenia , zobacz parametr Path .
Parametry
-LiteralPath
Określa ścieżkę lokalizacji. Wartość parametru LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki wieloznaczne nie są interpretowane jako znaki wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy je ująć w pojedynczy cudzysłów. Znaki pojedynczego cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Zwraca obiekt PathInfo reprezentujący lokalizację. Domyślnie to polecenie cmdlet nie generuje żadnego wyniku.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 symboli wieloznacznych. Jeśli wzorzec symboli wieloznacznych pasuje do więcej niż jednego kontenera, polecenie cmdlet zwróci błąd.
Program PowerShell przechowuje historię ostatnich 20 ustawionych lokalizacji. Jeśli wartość parametru Ścieżka jest znakiem -
, nowa lokalizacja robocza będzie poprzednią lokalizacją roboczą w historii (jeśli istnieje). Podobnie, jeśli wartość jest znakiem +
, nowa lokalizacja robocza będzie następną lokalizacją roboczą w historii (jeśli istnieje). Jest to podobne do użycia Pop-Location
i Push-Location
z wyjątkiem tego, że historia jest listą, a nie stosem i jest niejawnie śledzona, a nie ręcznie kontrolowana. Nie ma możliwości wyświetlenia listy historii.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Dane wejściowe
Możesz potokować ciąg zawierający ścieżkę, ale nie ścieżkę literału, do tego polecenia cmdlet.
Dane wyjściowe
None
Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Jeśli używasz parametru PassThru ze ścieżką lub parametrem LiteralPath, to polecenie cmdlet zwraca obiekt PathInfo reprezentujący nową lokalizację.
Jeśli używasz parametru PassThru z parametrem StackName, to polecenie cmdlet zwraca obiekt PathInfoStack reprezentujący nowy kontekst stosu.
Uwagi
Program PowerShell zawiera następujące aliasy dla Set-Location
programu :
- Wszystkie platformy:
cd
chdir
sl
Program PowerShell obsługuje wiele obszarów runspace na proces. Każdy obszar runspace ma swój własny bieżący katalog.
Nie jest to samo co [System.Environment]::CurrentDirectory
. To 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 polegać, ponieważ inna przestrzeń uruchomieniowa może ją zmienić w dowolnym momencie. Polecenia cmdlet lokalizacji należy użyć do wykonywania operacji opartych na ścieżkach przy użyciu bieżącego katalogu roboczego specyficznego dla bieżącej przestrzeni 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 ich użycia, 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żesz utworzyć wiele nazwanych stosów lokalizacji. Jeśli nie określisz nazwy stosu, program PowerShell używa bieżącego stosu lokalizacji. Domyślnie nienazwaną lokalizacją domyślną jest 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
Push-Location
lokalizacji, użyj polecenia cmdlet .Aby uzyskać lokalizację z stosu
Pop-Location
lokalizacji, użyj 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 w bieżącym stosie lokalizacji, nie możesz już używać Push-Location
poleceń cmdlet lub Pop-Location
do dodawania lub pobierania elementów z domyślnego stosu lub używania Get-Location
polecenia cmdlet do wyświetlania lokalizacji w nienazwanym stosie. Aby ustawić nienazwany stos bieżącego stosu, użyj parametru Set-Location
StackName polecenia cmdlet z wartością $null
lub pustym ciągiem (""
).