about_Path_Syntax
Krátký popis
Popisuje úplné a relativní formáty cest v PowerShellu.
Dlouhý popis
Všechny položky v úložišti dat přístupné prostřednictvím zprostředkovatele PowerShellu můžou být jednoznačně identifikovány názvy cest. Cesta je kombinace názvu položky, kontejneru a podkontejnerů, ve kterých se položka nachází, a jednotky PowerShellu, přes kterou jsou kontejnery přístupné.
V PowerShellu můžou být názvy cest jeden ze dvou typů: plně kvalifikovaný a relativní. Plně kvalifikovaná cesta se skládá ze všech prvků, které tvoří cestu. Následující syntaxe ukazuje prvky v plně kvalifikovaném názvu cesty:
[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>
Zástupný <provider>
symbol odkazuje na zprostředkovatele PowerShellu, prostřednictvím kterého přistupujete k úložišti dat. Zprostředkovatel fileSystem například umožňuje přístup k souborům a adresářům na vašem počítači. Tento prvek syntaxe je volitelný a není nikdy nutný, protože názvy jednotek jsou jedinečné pro všechny poskytovatele.
Zástupný <drive>
symbol odkazuje na jednotku PowerShellu podporovanou konkrétním poskytovatelem PowerShellu. V případě poskytovatele systému souborů se jednotky PowerShellu mapují na jednotky Windows nakonfigurované ve vašem systému.
Pokud například váš systém obsahuje jednotku A:
a jednotku C:
, poskytovatel fileSystem vytvoří stejné jednotky v PowerShellu.
Po zadání jednotky musíte zadat všechny kontejnery a podkontejnery, které položku obsahují. Kontejnery musí být zadány v hierarchickém pořadí, ve kterém existují v úložišti dat. Jinými slovy, musíte začít s nadřazeným kontejnerem, potom podřízeným kontejnerem v daném nadřazeném kontejneru a opakovat vzor pro každý podřízený kontejner. Kromě toho musí každý kontejner předcházet zpětné lomítko.
Poznámka:
PowerShell umožňuje použít zpětné lomítko nebo lomítko pro zajištění kompatibility s PowerShellem na jiných platformách. To funguje pro příkazy PowerShellu, ale nemusí fungovat při použití s nativními aplikacemi, které očekávají pouze oddělovač nativních adresářů. Slouží [System.IO.Path]::DirectorySeparatorChar
k vyhledání znaku používaného pro vaši platformu.
Po zadání kontejneru a podkontejnerů je nutné zadat název položky před zpětným lomítkem. Plně kvalifikovaný název cesty pro Shell.dll
soubor v C:\Windows\System32
adresáři je například následující:
C:\Windows\System32\Shell.dll
V tomto případě je jednotka, přes kterou jsou kontejnery přístupné C:
, jednotka, kontejner nejvyšší úrovně je Windows
, podkontejner je System32
a položka je Shell.dll
.
V některých situacích nemusíte zadávat plně kvalifikovanou cestu a místo toho můžete použít relativní cestu. PowerShell umožňuje identifikovat položku na základě jejího umístění vzhledem k aktuálnímu pracovnímu umístění.
PowerShell používá následující sekvence znaků k určení relativních cest.
- (
.
) – Aktuální umístění - (
..
) – Nadřazený prvek aktuálního umístění - (
\
) – Kořen aktuálního umístění
Následující příklady jsou založeny na aktuálním pracovním adresáři, který je nastaven na C:\Windows
.
- Relativní cesta
.\System
se překládá jakoC:\Windows\System
- Relativní cesta
..\Program Files
se překládá jakoC:\Program Files
- Relativní cesta
\Program Files
se překládá jakoC:\Program Files
- Relativní cesta
System
se překládá jakoC:\Windows\System
Při použití cesty v příkazu můžete použít plně kvalifikovanou cestu nebo relativní cestu. Předpokládejme například, že váš aktuální pracovní adresář je C:\Windows
. Následující Get-ChildItem
příkaz načte všechny položky v C:\TechDocs
adresáři:
Get-ChildItem \TechDocs
Zpětné lomítko označuje, že se má použít kořen jednotky aktuálního pracovního umístění. Vzhledem k tomu, že pracovní adresář je C:\Windows
, kořen jednotky je C:
jednotka. TechDocs
Vzhledem k tomu, že se adresář nachází mimo kořen, musíte zadat pouze zpětné lomítko.
Stejné výsledky získáte pomocí plně kvalifikované cesty:
Get-ChildItem C:\TechDocs
Bez ohledu na to, jestli používáte plně kvalifikovanou cestu nebo relativní název cesty, je cesta důležitá nejen proto, že vyhledá položku, ale také proto, že položku jednoznačně identifikuje, i když tato položka sdílí stejný název jako jiná položka v jiném kontejneru.
Předpokládejme například, že máte dva soubory, které mají každý název Results.txt
. První soubor je v adresáři s názvem C:\TechDocs\Jan
a druhý soubor je v adresáři s názvem C:\TechDocs\Feb
. Cesta pro první soubor (C:\TechDocs\Jan\Results.txt
) a cesta pro druhý soubor (C:\TechDocs\Feb\Results.txt
) umožňují jasně rozlišovat mezi těmito dvěma soubory.