Sdílet prostřednictvím


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

String

Ř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.

PathInfo

Pokud použijete parametr PassThru s Path nebo LiteralPath, vrátí tato rutina objekt PathInfo představující nové umístění.

PathInfoStack

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 parametru Get-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).