- 06/05/2017
- 4 minutes to read
-
- j
- s
- m
Podczas nawigacji po systemach folderów w Eksploratorze plików, zwykle masz określoną lokalizację roboczą – mianowicie bieżący otwarty folder. Elementy w bieżącym folderze mogą być łatwo manipulowane przez kliknięcie ich. W przypadku interfejsów wiersza poleceń, takich jak Cmd.exe, gdy znajdujesz się w tym samym folderze co dany plik, możesz uzyskać do niego dostęp, podając stosunkowo krótką nazwę, zamiast podawać całą ścieżkę do pliku. Bieżący katalog jest nazywany katalogiem roboczym.
Windows PowerShell używa rzeczownika Lokalizacja do odniesienia się do katalogu roboczego i implementuje rodzinę cmdletów do badania i manipulowania lokalizacją.
Uzyskanie bieżącej lokalizacji (Get-Location)
Aby określić ścieżkę bieżącej lokalizacji katalogu, wprowadź polecenie Get-Location:
PS> Get-LocationPath----C:\Documents and Settings\PowerUser
Uwaga
Ccmdlet Get-Location jest podobny do polecenia pwd w powłoce BASH. Polecenie Set-Location jest podobne do polecenia cd w Cmd.exe.
Ustawianie bieżącej lokalizacji (Set-Location)
Polecenie Get-Location jest używane z poleceniem Set-Location. Polecenie Set-Location umożliwia określenie bieżącej lokalizacji katalogu.
Set-Location -Path C:\Windows
Po wprowadzeniu polecenia można zauważyć, że nie otrzymujemy żadnej bezpośredniej informacji zwrotnej o efekcie działania polecenia. Większość poleceń Windows PowerShell, które wykonują jakąś czynność, wytwarza niewiele danych wyjściowych lub nie wytwarza ich wcale, ponieważ dane wyjściowe nie zawsze są użyteczne. Aby sprawdzić, czy nastąpiła pomyślna zmiana katalogu, należy dołączyć parametr -PassThru podczas wprowadzania polecenia Set-Location:
PS> Set-Location -Path C:\Windows -PassThruPath----C:\WINDOWS
Parametr -PassThru może być używany z wieloma poleceniami Set w Windows PowerShell w celu zwrócenia informacji o wyniku w przypadkach, w których nie ma domyślnego wyjścia.
Można określić ścieżki względne do bieżącej lokalizacji w taki sam sposób, jak w większości powłok poleceń UNIX i Windows. W standardowej notacji dla ścieżek względnych kropka (.) reprezentuje bieżący folder, a podwójna kropka (.) reprezentuje katalog nadrzędny bieżącej lokalizacji.
Na przykład, jeśli znajdujesz się w folderze C:Windows, kropka (.) reprezentuje C:Windows, a podwójna kropka (.) reprezentuje C:. Można zmienić bieżącą lokalizację na korzeń dysku C:, wpisując:
PS> Set-Location -Path .. -PassThruPath----C:\
Ta sama technika działa na dyskach Windows PowerShell, które nie są dyskami systemu plików, takich jak HKLM:. Możesz ustawić lokalizację na klucz HKLM w rejestrze, wpisując:
PS> Set-Location -Path HKLM:\SOFTWARE -PassThruPath----HKLM:\SOFTWARE
Możesz następnie zmienić lokalizację katalogu na katalog nadrzędny, który jest korzeniem dysku Windows PowerShell HKLM:, używając ścieżki względnej:
PS> Set-Location -Path .. -PassThruPath----HKLM:\
Możesz wpisać Set-Location lub użyć któregoś z wbudowanych aliasów Windows PowerShell dla Set-Location (cd, chdir, sl). Na przykład:
cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru
Zapisywanie i przywoływanie ostatnich lokalizacji (Push-Location i Pop-Location)
Podczas zmiany lokalizacji warto jest śledzić, gdzie się było i móc wrócić do poprzedniej lokalizacji. W Windows PowerShell cmdlet Push-Location tworzy uporządkowaną historię („stos”) ścieżek katalogów, w których użytkownik był, i można cofnąć się przez historię ścieżek katalogów za pomocą komplementarnego cmdleta Pop-Location.
Na przykład Windows PowerShell zwykle rozpoczyna się w katalogu domowym użytkownika.
PS> Get-LocationPath----C:\Documents and Settings\PowerUser
Uwaga
Słowo stos ma specjalne znaczenie w wielu ustawieniach programistycznych, w tym .NET Framework. Podobnie jak w przypadku fizycznego stosu elementów, ostatni element, który umieściłeś na stosie, jest pierwszym elementem, który możesz z niego ściągnąć. Dodawanie elementu do stosu jest potocznie nazywane „wepchnięciem” elementu na stos. Ściąganie elementu ze stosu jest potocznie znane jako „wyskakiwanie” elementu ze stosu.
Aby przepchnąć bieżącą lokalizację na stos, a następnie przejść do folderu Ustawienia lokalne, wpisz:
Push-Location -Path "Local Settings"
Możesz następnie przepchnąć lokalizację Ustawienia lokalne na stos i przejść do folderu Temp, wpisując:
Push-Location -Path Temp
Możesz sprawdzić, czy zmieniłeś katalogi, wpisując polecenie Get-Location:
PS> Get-LocationPath----C:\Documents and Settings\PowerUser\Local Settings\Temp
Możesz następnie wrócić do ostatnio odwiedzanego katalogu, wpisując polecenie Pop-Location, i zweryfikować zmianę, wpisując polecenie Get-Location:
PS> Pop-LocationPS> Get-LocationPath----C:\Documents and Settings\me\Local Settings
Tak samo jak w przypadku polecenia Set-Location, możesz dołączyć parametr -PassThru, gdy wpisujesz polecenie Pop-Location, aby wyświetlić katalog, który wpisałeś:
PS> Pop-Location -PassThruPath----C:\Documents and Settings\PowerUser
Możesz również użyć poleceń cmdlet Location ze ścieżkami sieciowymi. Jeśli masz serwer o nazwie FS01 z udziałem o nazwie Public, możesz zmienić lokalizację, wpisując
Set-Location \FS01\Public
lub
Push-Location \FS01\Public
Możesz użyć poleceń Push-Location i Set-Location, aby zmienić lokalizację na dowolny dostępny dysk. Na przykład, jeśli masz lokalny napęd CD-ROM z literą napędu D, który zawiera dysk CD z danymi, możesz zmienić lokalizację na napęd CD, wprowadzając polecenie Set-Location D:.
Jeśli napęd jest pusty, otrzymasz następujący komunikat o błędzie:
PS> Set-Location D:Set-Location : Cannot find path 'D:\' because it does not exist.
Gdy używasz interfejsu wiersza poleceń, nie jest wygodnie używać Eksploratora plików do sprawdzania dostępnych napędów fizycznych. Ponadto Eksplorator plików nie pokaże wszystkich napędów Windows PowerShell. Windows PowerShell dostarcza zestaw poleceń do manipulowania napędami Windows PowerShell, o których porozmawiamy dalej.