Set-Location
Nastaví aktuální pracovní umístění na zadané umístění.
Syntaxe
Set-Location
[[-Path] <String>]
[-PassThru]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[<CommonParameters>]
Set-Location
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Description
Rutina Set-Location
nastaví pracovní umístění na zadané umístění. Toto umístění může být adresář, podadresář, umístění registru nebo jakákoli cesta zprostředkovatele.
PowerShell 6.2 přidal podporu parametru -
Path a +
jako hodnoty. PowerShell udržuje historii posledních 20 umístění, ke kterým je možné přistupovat pomocí -
a +
. Tento seznam je nezávislý na zásobníku umístění, ke kterému se přistupuje pomocí parametru StackName .
Příklady
Příklad 1: Nastavení aktuálního umístění
PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>
Tento příkaz nastaví aktuální umístění na kořen HKLM:
jednotky.
Příklad 2: Nastavte aktuální umístění a zobrazte toto umístění.
PS C:\> Set-Location -Path "Env:\" -PassThru
Path
----
Env:\
PS Env:\>
Tento příkaz nastaví aktuální umístění na kořen Env:
jednotky. Pomocí parametru PassThru směruje PowerShell k vrácení PathInfo objektu, který představuje Env:\
umístění.
Příklad 3: Nastavení umístění na aktuální umístění na jednotce C:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>
První příkaz nastaví umístění na kořen HKLM:
jednotky ve zprostředkovateli registru.
Druhý příkaz nastaví umístění na aktuální umístění C:
jednotky ve zprostředkovateli FileSystem.
Pokud je název jednotky zadán ve formuláři <DriveName>:
(bez zpětného lomítka), rutina nastaví umístění na aktuální umístění na PSDrivu.
K získání aktuálního umístění v příkazu PSDrive použijte Get-Location -PSDrive <DriveName>
příkaz.
Příklad 4: Nastavení aktuálního umístění na pojmenovaný zásobník
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:\
První příkaz přidá aktuální umístění do zásobníku Cesty. Druhý příkaz vytvoří zásobník umístění Cesty jako aktuální zásobník umístění. Třetí příkaz zobrazí umístění v aktuálním zásobníku umístění.
Rutiny *-Location
používají aktuální zásobník umístění, pokud není v příkazu zadán jiný zásobník umístění. Informace o zásobníkech umístění najdete v poznámkách.
Příklad 5: Navigace v historii umístění pomocí +nebo -
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:\>
Pomocí aliasu cd -
můžete cd +
snadno procházet historii polohy v terminálu. Další informace o navigaci pomocí -
/+
parametru Path.
Parametry
-LiteralPath
Určuje cestu k umístění. Hodnota parametru LiteralPath se používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby nepřekládaly žádné znaky jako řídicí sekvence.
Typ: | String |
Aliasy: | PSPath, LP |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-PassThru
Vrátí PathInfo objekt, který představuje umístění. Ve výchozím nastavení tato rutina negeneruje žádný výstup.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Path
Zadejte cestu k novému pracovnímu umístění. Pokud není k dispozici žádná cesta, Set-Location
nastaví se výchozí hodnota domovského adresáře aktuálního uživatele. Při použití zástupných znaků vybere rutina kontejner (adresář, klíč registru, úložiště certifikátů), který odpovídá vzoru se zástupným znakem. Pokud vzor zástupných znaků odpovídá více než jednomu kontejneru, vrátí rutina chybu.
PowerShell uchovává historii posledních 20 umístění, která jste nastavili. Pokud je hodnota parametru -
Cesta znakem, bude nové pracovní umístění předchozí pracovní umístění v historii (pokud existuje). Podobně platí, že pokud je hodnota znakem +
, bude nové pracovní umístění dalším pracovním umístěním v historii (pokud existuje). Podobá se použití Pop-Location
a Push-Location
s výjimkou toho, že historie je seznam, nikoli zásobník a implicitně sledován, není ručně řízen. Seznam historie se nedá zobrazit.
Typ: | String |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
-StackName
Určuje existující název zásobníku umístění, ze kterého tato rutina vytvoří aktuální zásobník umístění. Zadejte název zásobníku umístění. Pokud chcete označit nepojmenovaný výchozí zásobník umístění, zadejte $null
nebo prázdný řetězec (""
).
Použití tohoto parametru nezmění aktuální umístění. Změní pouze zásobník používaný rutinami *-Location
. Rutiny *-Location
fungují s aktuálním zásobníkem, pokud k zadání jiného zásobníku nepoužíváte parametr StackName . Další informace o zásobníkech umístění najdete v poznámkách.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
Vstupy
Řetězec, který obsahuje cestu, ale ne literálovou cestu, můžete do této rutiny převést.
Výstupy
None
Ve výchozím nastavení tato rutina nevrací žádný výstup.
Pokud použijete parametr PassThru s Path nebo LiteralPath, vrátí tato rutina objekt PathInfo představující nové umístění.
Pokud použijete parametr PassThru se StackName, tato rutina vrátí PathInfoStack objekt představující nový kontext zásobníku.
Poznámky
PowerShell obsahuje následující aliasy pro Set-Location
:
- Všechny platformy:
cd
chdir
sl
PowerShell podporuje více prostředí runspace na proces. Každý runspace má svůj vlastní aktuální adresář.
To není totéž jako [System.Environment]::CurrentDirectory
. Toto chování může být problém při volání rozhraní .NET API nebo spouštění nativních aplikací bez poskytování explicitních cest k adresářům.
I když rutiny umístění nastavily aktuální adresář pro celý proces, nemůžete na něm záviset, protože ho může kdykoli změnit jiný runspace. Rutiny umístění byste měli použít k provádění operací založených na cestě pomocí aktuálního pracovního adresáře specifického pro aktuální prostředí Runspace.
Rutina Set-Location
je navržená tak, aby fungovala s daty vystavenými libovolným poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných v relaci, zadejte Get-PSProvider
. Další informace najdete v tématu about_Providers.
Zásobník je poslední první seznam, ve kterém lze získat přístup pouze k naposledy přidané položce. Položky přidáte do zásobníku v pořadí, v jakém je používáte, a pak je načtete pro použití v obráceném pořadí. PowerShell umožňuje ukládat umístění zprostředkovatelů do zásobníků umístění. PowerShell vytvoří nepojmenovaný výchozí zásobník umístění. Můžete vytvořit několik pojmenovaných zásobníků umístění. Pokud nezadáte název zásobníku, PowerShell použije aktuální zásobník umístění. Ve výchozím nastavení je nepojmenované výchozí umístění aktuální zásobník umístění, ale pomocí rutiny Set-Location
můžete změnit aktuální zásobník umístění.
Ke správě zásobníků umístění použijte rutiny *-Location
následujícím způsobem:
Pokud chcete přidat umístění do zásobníku umístění, použijte tuto rutinu
Push-Location
.Pokud chcete získat umístění ze zásobníku umístění, použijte rutinu
Pop-Location
.Pokud chcete zobrazit umístění v aktuálním zásobníku umístění, použijte parametr Stack rutiny
Get-Location
. Pokud chcete zobrazit umístění v pojmenovaném zásobníku umístění, použijte parametr StackName parametruGet-Location
.K vytvoření nového zásobníku umístění použijte parametr StackName parametru
Push-Location
. Pokud zadáte zásobník, který neexistuje,Push-Location
vytvoří se zásobník.Pokud chcete vytvořit zásobník umístění jako aktuální zásobník umístění, použijte parametr StackName parametru
Set-Location
.
Výchozí zásobník nenaznačeného umístění je plně přístupný jenom v případech, kdy se jedná o aktuální zásobník umístění.
Pokud nastavíte pojmenovaný zásobník umístění jako aktuální zásobník umístění, nebudete už moct přidávat Push-Location
Pop-Location
nebo získávat položky z výchozího zásobníku nebo pomocí Get-Location
rutiny zobrazovat umístění v nepojmenovaném zásobníku. Pokud chcete, aby byl zásobník bez názvu aktuální, použijte parametr StackName rutiny s hodnotou $null
nebo prázdným řetězcem (""
Set-Location
).