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 odPush-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ć przezSet-Location $here.Get-Location -Stack— pokazuje stos lokalizacji po wcześniejszymPush-Location.Get-Location -PSProvider Registry— sprawdza, gdzie jesteś w drzewie rejestru, jeśli wskoczyłeś na dyskHKLM:.
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.