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 System32a 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á jako C:\Windows\System
  • Relativní cesta ..\Program Files se překládá jako C:\Program Files
  • Relativní cesta \Program Files se překládá jako C:\Program Files
  • Relativní cesta System se překládá jako C:\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\Jana 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.

Viz také