Get-Location

Získá informace o aktuálním pracovním umístění nebo zásobníku umístění.

Syntax

Get-Location
   [-PSProvider <String[]>]
   [-PSDrive <String[]>]
   [<CommonParameters>]
Get-Location
   [-Stack]
   [-StackName <String[]>]
   [<CommonParameters>]

Description

Rutina Get-Location získá objekt, který představuje aktuální adresář, podobně jako příkaz print working directory (pwd).

Při přechodu mezi jednotkami PowerShellu zachová PowerShell vaše umístění na každé jednotce. Pomocí této rutiny můžete najít umístění na každé jednotce.

Tuto rutinu můžete použít k získání aktuálního adresáře za běhu a jeho použití ve funkcích a skriptech, například ve funkci, která zobrazuje aktuální adresář v příkazovém řádku PowerShellu.

Tuto rutinu můžete použít také k zobrazení umístění v zásobníku umístění. Další informace najdete v poznámkách a popisech parametrů Stack a StackName .

Příklady

Příklad 1: Zobrazení aktuálního umístění jednotky

Tento příkaz zobrazí vaše umístění na aktuální jednotce PowerShellu.

PS C:\Windows> Get-Location

Path
----
C:\Windows

Pokud jste například v Windows adresáři C: jednotky, zobrazí se cesta k danému adresáři.

Příklad 2: Zobrazení aktuálního umístění pro různé jednotky

Tento příklad ukazuje použití k zobrazení aktuálního Get-Location umístění v různých jednotkách PowerShellu. Set-Location slouží ke změně umístění na několik různých cest na různých psDrivech.

PS C:\> Set-Location C:\Windows
PS C:\Windows> Set-Location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft> Set-Location "HKCU:\Control Panel\Input Method"
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive C

Path
----
C:\Windows

PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive HKLM

Path
----
HKLM:\Software\Microsoft

PS HKCU:\Control Panel\Input Method> Set-Location C:
PS C:\Windows> Get-Location -PSProvider Registry

Path
----
HKCU:\Control Panel\Input Method

Příklad 3: Získání umístění pomocí zásobníků

Tento příklad ukazuje, jak pomocí parametrů Get-Location Stack a StackName vypsat umístění v aktuálním zásobníku umístění a alternativních zásobníkech umístění.

Rutina Push-Location se používá ke změně na tři různá umístění. Třetí nasdílení změn používá jiný název zásobníku. Parametr StackGet-Location zobrazuje obsah výchozího zásobníku. Parametr StackNameGet-Location pro zobrazení obsahu zásobníku s názvem Stack2.

PS C:\> Push-Location C:\Windows
PS C:\Windows>Push-Location System32
PS C:\Windows\System32>Push-Location WindowsPowerShell -StackName Stack2
C:\Windows\System32\WindowsPowerShell>Get-Location -Stack

Path
----
C:\Windows
C:\

C:\Windows\System32\WindowsPowerShell>Get-Location -StackName Stack2

Path
----
C:\Windows\System32

Příklad 4: Přizpůsobení příkazového řádku PowerShellu

Tento příklad ukazuje, jak přizpůsobit příkazový řádek PowerShellu.

PS C:\>
function prompt { 'PowerShell: ' + (Get-Location) + '> '}
PowerShell: C:\>

Funkce, která definuje výzvu, obsahuje Get-Location příkaz, který se spustí při každém zobrazení výzvy v konzole.

Formát výchozí výzvy PowerShellu je definován speciální funkcí s názvem prompt. Výzvu můžete změnit v konzole vytvořením nové funkce s názvem prompt.

Pokud chcete zobrazit aktuální funkci příkazového řádku, zadejte následující příkaz: Get-Content Function:\prompt

Parametry

-PSDrive

Získá aktuální umístění v zadané jednotce PowerShellu.

Pokud jste například na Cert: jednotce, můžete tento parametr použít k vyhledání aktuálního umístění na C: jednotce.

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

-PSProvider

Získá aktuální umístění na jednotce podporované zadaným poskytovatelem PowerShellu. Pokud zadaný zprostředkovatel podporuje více než jednu jednotku, vrátí tato rutina umístění na naposledy přístupné jednotce.

Pokud jste například na C: jednotce, můžete tento parametr použít k vyhledání aktuálního umístění na jednotkách poskytovatele registru PowerShellu.

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

-Stack

Označuje, že tato rutina zobrazí umístění přidaná do aktuálního zásobníku umístění. Umístění do zásobníků můžete přidat pomocí rutiny Push-Location .

Pokud chcete zobrazit umístění v jiném zásobníku umístění, použijte parametr StackName . Informace o zásobníkech umístění najdete v poznámkách.

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

-StackName

Určuje pojmenované zásobníky umístění jako pole řetězců. Zadejte jeden nebo více názvů zásobníků umístění.

Pokud chcete zobrazit umístění v aktuálním zásobníku umístění, použijte parametr Stack . Pokud chcete vytvořit zásobník umístění jako aktuální zásobník umístění, použijte rutinu Set-Location .

Tato rutina nemůže zobrazit umístění v nepojmenovaném výchozím zásobníku, pokud se nejedná o aktuální zásobník.

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

Vstupy

None

Do této rutiny nemůžete roušit objekty.

Výstupy

PathInfo

Ve výchozím nastavení vrátí tato rutina objekt PathInfo .

PathInfoStack

Pokud použijete parametry Stack nebo StackName , tato rutina vrátí PathInfoStack objekt.

Poznámky

PowerShell obsahuje následující aliasy pro Get-Location:

  • Všechny platformy:

    • gl
    • pwd

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. Rutina Get-Location vrátí aktuální adresář aktuálního prostředí Runspace PowerShellu.

Tato rutina je navržená tak, aby fungovala s daty vystavenými jakýmkoli poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů ve vaší relaci, zadejte Get-PSProvider. Další informace najdete v tématu about_Providers.

Způsoby interakce parametrů PSProvider, PSDrive, Stack a StackName závisí na poskytovateli. Některé kombinace způsobí chyby, například zadání jednotky i poskytovatele, který tuto jednotku nezpřístupňuje. Pokud nejsou zadány žádné parametry, vrátí tato rutina objekt PathInfo pro zprostředkovatele, který obsahuje aktuální pracovní umístění.

Zásobník je poslední první seznam, ve kterém je přístupná pouze naposledy přidaná položka. 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í a 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 PowerShellu *-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 rutiny Get-Location .

  • K vytvoření nového zásobníku umístění použijte parametr StackName rutiny 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 rutiny 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-LocationPop-Location nebo získávat položky z výchozího zásobníku nebo pomocí této rutiny zobrazit 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).