Managing Current Location

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.