about_Locations
Kort beskrivning
Beskriver hur du kommer åt objekt från arbetsplatsen i PowerShell.
Lång beskrivning
Den aktuella arbetsplatsen är standardplatsen där kommandona pekar. Det här är med andra ord den plats som PowerShell använder om du inte anger en explicit sökväg till objektet eller platsen som påverkas av kommandot.
Kommentar
PowerShell stöder flera runspaces per process. Varje runspace har en egen aktuell katalog. Det här är inte samma som den aktuella katalogen i PowerShell-processen: [System.Environment]::CurrentDirectory
.
Du kan till exempel ange din aktuella arbetsplats till följande plats:
Set-Location C:\Program Files\PowerShell
Därför bearbetas alla kommandon från den här platsen om inte en annan sökväg uttryckligen anges.
PowerShell behåller den aktuella arbetsplatsen för varje enhet även när enheten inte är den aktuella enheten. På så sätt kan du komma åt objekt från den aktuella arbetsplatsen genom att endast referera till enheten på en annan plats.
Anta till exempel att din aktuella arbetsplats är C:\Windows
. Anta nu att du använder följande kommando för att ändra din aktuella arbetsplats till HKLM:
enheten:
Set-Location HKLM:
Även om den aktuella platsen nu är registerenheten kan du fortfarande komma åt objekt i C:\Windows
katalogen med hjälp av C:
enheten, som du ser i följande exempel:
Get-ChildItem C:
PowerShell kommer ihåg att den aktuella arbetsplatsen för den Windows
enheten är katalogen, så den hämtar objekt från den katalogen. Resultatet skulle vara detsamma om du körde följande kommando:
Get-ChildItem C:\Windows
I PowerShell kan du använda Get-Location
kommandot för att fastställa den aktuella arbetsplatsen och du kan använda Set-Location
kommandot för att ange den aktuella arbetsplatsen. Följande kommando anger till exempel den aktuella arbetsplatsen till Windows
enhetens C:
katalog:
Set-Location C:\Windows
När du har angett den aktuella arbetsplatsen kan du fortfarande komma åt objekt från andra enheter genom att inkludera enhetsnamnet (följt av ett kolon) i kommandot, som du ser i följande exempel:
Get-ChildItem HKLM:\software
Exempelkommandot hämtar en lista över objekt i programcontainern för HKEY_LOCAL_MACHINE
hive i registret.
Med PowerShell kan du också använda specialtecken för att representera den aktuella arbetsplatsen och dess överordnade plats. Om du vill representera den aktuella arbetsplatsen använder du en enda period. Om du vill representera överordnad för den aktuella arbetsplatsen använder du två perioder. Följande anger till exempel underkatalogen System
på den aktuella arbetsplatsen:
Get-ChildItem .\System
Om den aktuella arbetsplatsen är C:\Windows
returnerar det här kommandot en lista över alla objekt i C:\Windows\System
. Men om du använder två perioder används den överordnade katalogen för den aktuella arbetskatalogen, som du ser i följande exempel:
Get-ChildItem ..\"Program Files"
I det här fallet behandlar PowerShell de två perioderna som C:-enheten, så kommandot hämtar alla objekt i C:\Program Files
katalogen.
En sökväg som börjar med ett omvänt snedstreck (\
) identifierar en sökväg från roten på den aktuella enheten. Om din aktuella arbetsplats till exempel är C:\Program Files\PowerShell
är C:\
roten på enheten . Därför listar följande kommando alla objekt i C:\Windows
katalogen:
Get-ChildItem \Windows
Om du inte anger en sökväg som börjar med ett enhetsnamn, omvänt snedstreck (\
) eller punkt (.
) när du anger namnet på en container eller ett objekt antas containern eller objektet finnas på den aktuella arbetsplatsen. Om din aktuella arbetsplats till exempel är C:\Windows
returnerar följande kommando alla objekt i C:\Windows\System
katalogen:
Get-ChildItem System
Om du anger ett filnamn i stället för ett katalognamn returnerar PowerShell information om filen (förutsatt att filen finns på den aktuella arbetsplatsen).