Hantering av aktuell plats

  • 06/05/2017
  • 4 minuter att läsa
    • j
    • s
    • m

När du navigerar genom mappsystem i File Explorer, har du vanligtvis en specifik arbetsplats – nämligen den aktuella öppna mappen. Poster i den aktuella mappen kan enkelt manipuleras genom att klicka på dem. För kommandoradsgränssnitt som Cmd.exe gäller att när du befinner dig i samma mapp som en viss fil kan du komma åt den genom att ange ett relativt kort namn, i stället för att behöva ange hela sökvägen till filen. Den aktuella katalogen kallas för arbetskatalogen.

Windows PowerShell använder substantivet Location för att hänvisa till arbetskatalogen och implementerar en familj av cmdlets för att undersöka och manipulera din placering.

Hitta din nuvarande plats (Get-Location)

För att bestämma sökvägen till din nuvarande katalogplats anger du kommandot Get-Location:

PS> Get-LocationPath----C:\Documents and Settings\PowerUser

Note

Cmdletten Get-Location liknar kommandot pwd i BASH-skalet. Cmdletten Set-Location liknar kommandot cd i Cmd.exe.

Sätt din nuvarande plats (Set-Location)

Kommandot Get-Location används tillsammans med kommandot Set-Location. Med kommandot Set-Location kan du ange din nuvarande katalogplacering.

Set-Location -Path C:\Windows

När du har angett kommandot kommer du att märka att du inte får någon direkt återkoppling om effekten av kommandot. De flesta Windows PowerShell-kommandon som utför en åtgärd ger liten eller ingen utdata eftersom utdata inte alltid är användbara. Om du vill kontrollera att en lyckad katalogändring har skett när du anger kommandot Set-Location kan du inkludera parametern -PassThru när du anger kommandot Set-Location:

PS> Set-Location -Path C:\Windows -PassThruPath----C:\WINDOWS

Parametern -PassThru kan användas med många Set-kommandon i Windows PowerShell för att returnera information om resultatet i fall där det inte finns någon standardutgång.

Du kan ange sökvägar som är relativa till den aktuella platsen på samma sätt som i de flesta UNIX- och Windows-kommandoshells. I standardnotationen för relativa sökvägar representerar en punkt (.) din aktuella mapp och en dubbel punkt (..) representerar den överordnade katalogen till din aktuella plats.

Om du till exempel befinner dig i mappen C:\Windows representerar en punkt (.) C:\Windows och dubbla punkter (..) representerar C:. Du kan byta från din nuvarande plats till roten av enheten C: genom att skriva:

PS> Set-Location -Path .. -PassThruPath----C:\

Samma teknik fungerar på Windows PowerShell-enheter som inte är filsystemenheter, till exempel HKLM:. Du kan ange din plats till nyckeln HKLM\Software i registret genom att skriva:

PS> Set-Location -Path HKLM:\SOFTWARE -PassThruPath----HKLM:\SOFTWARE

Du kan sedan ändra katalogplatsen till den överordnade katalogen, som är roten till Windows PowerShell-enheten HKLM:, genom att använda en relativ sökväg:

PS> Set-Location -Path .. -PassThruPath----HKLM:\

Du kan skriva Set-Location eller använda något av de inbyggda Windows PowerShell-alliaserna för Set-Location (cd, chdir, sl). Till exempel:

cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru

Spara och återkalla senaste platser (Push-Location och Pop-Location)

När du byter plats är det bra att hålla reda på var du har varit och att kunna återvända till din tidigare plats. Cmdletten Push-Location i Windows PowerShell skapar en ordnad historik (en ”stapel”) av katalogsökvägar där du har varit, och du kan gå tillbaka genom historiken av katalogsökvägar genom att använda den kompletterande cmdlet Pop-Location.

Till exempel startar Windows PowerShell vanligtvis i användarens hemkatalog.

PS> Get-LocationPath----C:\Documents and Settings\PowerUser

Notis

Ordet stapel har en speciell betydelse i många programmeringsinställningar, inklusive .NET Framework. Precis som i en fysisk stapel av objekt är det sista objektet som du lägger på stapeln det första objektet som du kan ta bort från stapeln. Att lägga till ett objekt på en stapel kallas i vardagligt tal för att ”skjuta” objektet på stapeln. Att ta bort ett objekt från stapeln kallas i vardagligt tal för att ”ta upp” objektet från stapeln.

För att skjuta upp den aktuella platsen på stapeln och sedan flytta till mappen Lokala inställningar skriver du:

Push-Location -Path "Local Settings"

Du kan sedan skjuta upp platsen Lokala inställningar på stapeln och flytta till mappen Temp genom att skriva:

Push-Location -Path Temp

Du kan verifiera att du har bytt kataloger genom att skriva kommandot Get-Location:

PS> Get-LocationPath----C:\Documents and Settings\PowerUser\Local Settings\Temp

Du kan sedan flytta tillbaka till den senast besökta katalogen genom att skriva kommandot Pop-Location och verifiera ändringen genom att skriva kommandot Get-Location:

PS> Pop-LocationPS> Get-LocationPath----C:\Documents and Settings\me\Local Settings

Samma som med kommandot Set-Location kan du inkludera parametern -PassThru när du skriver kommandot Pop-Location för att visa katalogen du skrivit in:

PS> Pop-Location -PassThruPath----C:\Documents and Settings\PowerUser

Du kan också använda kommandot Location med nätverkssökvägar. Om du har en server som heter FS01 med en resurs som heter Public kan du ändra platsen genom att skriva

Set-Location \FS01\Public

eller

Push-Location \FS01\Public

Du kan använda kommandona Push-Location och Set-Location för att ändra platsen till en tillgänglig enhet. Om du till exempel har en lokal cd-rom-enhet med enhetsbeteckning D som innehåller en data-cd kan du ändra platsen till cd-enheten genom att skriva kommandot Set-Location D:.

Om enheten är tom får du följande felmeddelande:

PS> Set-Location D:Set-Location : Cannot find path 'D:\' because it does not exist.

När du använder ett kommandoradsgränssnitt är det inte praktiskt att använda Utforskaren för att undersöka de tillgängliga fysiska enheterna. Dessutom visar inte File Explorer alla Windows PowerShell-enheter. Windows PowerShell tillhandahåller en uppsättning kommandon för att manipulera Windows PowerShell-enheter, och vi kommer att prata om dessa nästa gång.

Lämna ett svar

Din e-postadress kommer inte publiceras.