Get-Location

Wyświetla bieżącą lokalizację roboczą.

Get-Location to cmdlet PowerShella, który mówi Ci, gdzie aktualnie jesteś — czyli pokazuje bieżącą lokalizację roboczą (working directory). To odpowiednik linuksowego pwd, z tą różnicą, że PowerShell traktuje „lokalizację” szerzej niż tylko system plików: możesz być również w gałęzi rejestru, w magazynie certyfikatów albo na innym dysku PSDrive. Get-Location nie zwraca zwykłego stringa, tylko obiekt PathInfo, więc da się z niego wyciągnąć konkretne pola, np. (Get-Location).Path.

Składnia i najważniejsze opcje

Podstawowa składnia jest banalnie prosta: Get-Location. Resztę dorzucasz tylko, gdy grzebiesz w innych dostawcach niż system plików.

  • -PSProvider — zwraca bieżącą lokalizację dla wskazanego dostawcy (np. FileSystem, Registry).
  • -PSDrive — pokazuje bieżącą lokalizację na konkretnym dysku PowerShella (np. C, HKLM).
  • -Stack — wyświetla lokalizacje zapisane w bieżącym stosie (tym od Push-Location/Pop-Location).
  • -StackName — odwołuje się do nazwanego stosu lokalizacji, jeśli masz ich kilka.

Warto znać aliasy: gl oraz pwd robią dokładnie to samo co Get-Location.

Przykłady użycia

  • Get-Location — wypisuje bieżący katalog roboczy. Klasyka „gdzie ja właściwie jestem”.
  • (Get-Location).Path — wyciąga samą ścieżkę jako tekst, idealne do podstawienia w skrypcie.
  • $here = Get-Location — zapisuje lokalizację do zmiennej, żeby później wrócić przez Set-Location $here.
  • Get-Location -Stack — pokazuje stos lokalizacji po wcześniejszym Push-Location.
  • Get-Location -PSProvider Registry — sprawdza, gdzie jesteś w drzewie rejestru, jeśli wskoczyłeś na dysk HKLM:.

Częste błędy i pułapki

Pierwsza pułapka: pwd w PowerShellu to alias na Get-Location, a nie prawdziwy program pwd z Linuksa. W skrypcie przenośnym lepiej pisać pełną nazwę cmdletu. Druga: ludzie próbują traktować wynik jak string i sklejają go z innymi ścieżkami — a dostają obiekt PathInfo. Jeśli potrzebujesz czystego tekstu, użyj .Path albo opakuj w "$(Get-Location)". Trzecia: Get-Location tylko odczytuje stan, niczego nie zmienia — do przejścia gdzie indziej służy Set-Location. I pamiętaj, że bieżąca lokalizacja procesu .NET nie zawsze równa się lokalizacji PowerShella, więc w mieszanych skryptach nie zakładaj, że są zsynchronizowane.

Powiązane komendy: Set-Location, Push-Location, Pop-Location, Resolve-Path, oraz linuksowe pwd.