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é cestě:

[<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.

Podpora oboru názvů souborů Win32

Ve Windows podporují rutiny, které podporují zprostředkovatele FileSystem, také cesty, které používají formát oboru názvů Win32. Tyto cesty můžete použít pouze s parametrem LiteralPath rutin.

Cesty v oboru názvů souboru Win32 mají předponu \\?\. Předpona říká rozhraním API systému Windows, aby zakázala analýzu všech řetězců a odeslala řetězec, který následuje přímo do systému souborů. Pokud například systém souborů podporuje velké cesty a názvy souborů, můžete překročit limity MAX_PATH , které jinak vynucují rozhraní API systému Windows.

Další informace najdete v tématu Obory názvů souborů Win32 v tématu Pojmenování souborů, cest a oborů názvů.

Viz také