about_Locations
Krátký popis
Popisuje, jak získat přístup k položkám z pracovního umístění v PowerShellu.
Dlouhý popis
Aktuální pracovní umístění je výchozím umístěním, na které příkazy odkazují. Jinými slovy, toto je umístění, které PowerShell používá, pokud nezadáte explicitní cestu k položce nebo umístění, které je ovlivněno příkazem.
Poznámka:
PowerShell podporuje více prostředí runspace na proces. Každý runspace má svůj vlastní aktuální adresář. Nejedná se o stejný adresář jako aktuální adresář procesu PowerShellu: [System.Environment]::CurrentDirectory
.
Můžete například nastavit aktuální pracovní umístění na následující umístění:
Set-Location C:\Program Files\PowerShell
V důsledku toho se všechny příkazy zpracovávají z tohoto umístění, pokud není explicitně poskytnuta jiná cesta.
PowerShell udržuje aktuální pracovní umístění pro každou jednotku, i když jednotka není aktuální jednotkou. To umožňuje přístup k položkám z aktuálního pracovního umístění odkazem pouze na jednotku jiného umístění.
Předpokládejme například, že vaše aktuální pracovní umístění je C:\Windows
. Předpokládejme, že teď pomocí následujícího příkazu změníte aktuální pracovní umístění na jednotku HKLM:
:
Set-Location HKLM:
I když je vaše aktuální umístění teď jednotkou registru, můžete k položkám v C:\Windows
adresáři přistupovat pomocí C:
jednotky, jak je znázorněno v následujícím příkladu:
Get-ChildItem C:
PowerShell si pamatuje, že vaše aktuální pracovní umístění pro danou jednotku Windows
je adresář, takže načte položky z daného adresáře. Výsledky by byly stejné, kdybyste spustili následující příkaz:
Get-ChildItem C:\Windows
V PowerShellu Get-Location
můžete pomocí příkazu určit aktuální pracovní umístění a pomocí Set-Location
příkazu nastavit aktuální pracovní umístění. Například následující příkaz nastaví aktuální pracovní umístění do Windows
adresáře C:
jednotky:
Set-Location C:\Windows
Po nastavení aktuálního pracovního umístění můžete k položkám z jiných jednotek přistupovat tak, že do příkazu zahrnete název jednotky (následovaný dvojtečku), jak je znázorněno v následujícím příkladu:
Get-ChildItem HKLM:\software
Ukázkový příkaz načte seznam položek v kontejneru HKEY_LOCAL_MACHINE
Software podregistru v registru.
PowerShell také umožňuje použít speciální znaky, které představují aktuální pracovní umístění a jeho nadřazené umístění. Chcete-li reprezentovat aktuální pracovní umístění, použijte jedno období. Chcete-li reprezentovat nadřazenou položku aktuální pracovní polohy, použijte dvě tečky. Například následující určuje System
podadresář v aktuálním pracovním umístění:
Get-ChildItem .\System
Pokud je C:\Windows
aktuální pracovní umístění , tento příkaz vrátí seznam všech položek v C:\Windows\System
. Pokud však použijete dvě tečky, použije se nadřazený adresář aktuálního pracovního adresáře, jak je znázorněno v následujícím příkladu:
Get-ChildItem ..\"Program Files"
V tomto případě PowerShell zachází se dvěma tečkami jako s jednotkou C: a příkaz načte všechny položky v C:\Program Files
adresáři.
Cesta začínající zpětným lomítkem (\
) identifikuje cestu z kořenového adresáře aktuální jednotky. Pokud je například aktuální pracovní umístění C:\Program Files\PowerShell
, kořen jednotky je C:\
. Proto následující příkaz vypíše všechny položky v C:\Windows
adresáři:
Get-ChildItem \Windows
Pokud nezadáte cestu začínající názvem jednotky, zpětným lomítkem (\
) nebo tečkou (.
) při zadávání názvu kontejneru nebo položky, předpokládá se, že se kontejner nebo položka nacházejí v aktuálním pracovním umístění. Pokud je C:\Windows
například vaše aktuální pracovní umístění, vrátí následující příkaz všechny položky v C:\Windows\System
adresáři:
Get-ChildItem System
Pokud místo názvu adresáře zadáte název souboru, PowerShell vrátí podrobnosti o daném souboru (za předpokladu, že se soubor nachází v aktuálním pracovním umístění).