Håndtering af aktuel placering

  • 06/05/2017
  • 4 minutter at læse
    • j
    • s
    • m

Når du navigerer i mappesystemer i File Explorer, har du normalt en bestemt arbejdsplads – nemlig den aktuelle åbne mappe. Elementer i den aktuelle mappe kan nemt manipuleres ved at klikke på dem. For kommandolinjeinterfaces som Cmd.exe gælder det, at når du befinder dig i den samme mappe som en bestemt fil, kan du få adgang til den ved at angive et relativt kort navn i stedet for at skulle angive hele stien til filen. Den aktuelle mappe kaldes arbejdsmappen.

Windows PowerShell bruger navneordet Location til at henvise til arbejdsmappen og implementerer en familie af cmdlets til at undersøge og manipulere din placering.

Hentning af din aktuelle placering (Get-Location)

For at bestemme stien til din aktuelle mappeplacering skal du indtaste kommandoen Get-Location:

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

Note

Cmdletten Get-Location svarer til kommandoen pwd i BASH-shell’en. Cmdletten Set-Location svarer til cd-kommandoen i Cmd.exe.

Indstilling af din aktuelle placering (Set-Location)

Kommandoen Get-Location bruges sammen med kommandoen Set-Location. Med kommandoen Set-Location kan du angive din aktuelle mappeplacering.

Set-Location -Path C:\Windows

Når du har indtastet kommandoen, vil du bemærke, at du ikke får nogen direkte tilbagemelding om effekten af kommandoen. De fleste Windows PowerShell-kommandoer, der udfører en handling, giver kun lidt eller intet output, fordi output ikke altid er nyttigt. Hvis du vil kontrollere, at der er sket et vellykket mappeskift, når du indtaster kommandoen Set-Location, skal du medtage parameteren -PassThru, når du indtaster kommandoen Set-Location:

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

Parameteren -PassThru kan bruges sammen med mange Set-kommandoer i Windows PowerShell til at returnere oplysninger om resultatet i tilfælde, hvor der ikke er noget standardoutput.

Du kan angive stier relativt til din aktuelle placering på samme måde som i de fleste UNIX- og Windows-kommandoskaller. I standardnotationen for relative stier repræsenterer et punktum (.) din aktuelle mappe, og et dobbelt punktum (..) repræsenterer den overordnede mappe for din aktuelle placering.

Hvis du f.eks. befinder dig i mappen C:\Windows, repræsenterer et punktum (.) C:\Windows, og et dobbelt punktum (..) repræsenterer C:. Du kan skifte fra din nuværende placering til roden af C:-drevet ved at skrive:

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

Den samme teknik fungerer på Windows PowerShell-drev, som ikke er filsystemdrev, f.eks. HKLM:. Du kan indstille din placering til nøglen HKLM\Software i registreringsdatabasen ved at skrive:

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

Du kan derefter ændre mappens placering til den overordnede mappe, som er roden af Windows PowerShell-drevet HKLM:, ved at bruge en relativ sti:

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

Du kan skrive Set-Location eller bruge et af de indbyggede Windows PowerShell-alliaser for Set-Location (cd, chdir, sl). For eksempel:

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

Save and Recalling Recent Locations (Push-Location and Pop-Location)

Når du skifter sted, er det nyttigt at holde styr på, hvor du har været, og at kunne vende tilbage til dit tidligere sted. Cmdletten Push-Location i Windows PowerShell opretter en ordnet historik (en “stak”) over mappestier, hvor du har været, og du kan gå tilbage gennem historikken over mappestier ved hjælp af den supplerende cmdlet Pop-Location.

For eksempel starter Windows PowerShell typisk i brugerens hjemmemappe.

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

Note

Ordet stak har en særlig betydning i mange programmeringsindstillinger, herunder i .NET Framework. Ligesom en fysisk stak af elementer er det sidste element, du lægger på stakken, det første element, du kan trække fra stakken. Tilføjelse af et element til en stak kaldes i daglig tale for at “skubbe” elementet på stakken. At trække en genstand fra stakken kaldes i daglig tale at “poppe” genstanden fra stakken.

For at skubbe den aktuelle placering på stakken og derefter flytte til mappen Lokale indstillinger skal du skrive:

Push-Location -Path "Local Settings"

Du kan derefter skubbe placeringen Lokale indstillinger på stakken og flytte til mappen Temp ved at skrive:

Push-Location -Path Temp

Du kan kontrollere, at du har skiftet mappe, ved at indtaste kommandoen Get-Location:

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

Du kan derefter springe tilbage til den senest besøgte mappe ved at indtaste kommandoen Pop-Location og bekræfte ændringen ved at indtaste kommandoen Get-Location:

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

Som med cmdletten Set-Location kan du medtage parameteren -PassThru, når du indtaster cmdletten Pop-Location, for at få vist den mappe, du har indtastet:

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

Du kan også bruge Location-cmdlets med netværksstier. Hvis du har en server ved navn FS01 med en andel ved navn Public, kan du ændre din placering ved at skrive

Set-Location \FS01\Public

eller

Push-Location \FS01\Public

Du kan bruge kommandoerne Push-Location og Set-Location til at ændre placeringen til et hvilket som helst tilgængeligt drev. Hvis du f.eks. har et lokalt cd-rom-drev med drevbogstav D, der indeholder en data-cd, kan du ændre placeringen til cd-drevet ved at indtaste kommandoen Set-Location D:.

Hvis drevet er tomt, får du følgende fejlmeddelelse:

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

Når du bruger en kommandolinje-grænseflade, er det ikke praktisk at bruge File Explorer til at undersøge de tilgængelige fysiske drev. File Explorer vil heller ikke vise dig alle Windows PowerShell-drev. Windows PowerShell indeholder et sæt kommandoer til at manipulere Windows PowerShell-drev, og vi vil tale om disse næste gang.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.