Megosztás a következőn keresztül:


a_útvonal_szintaxisáról

Rövid leírás

A PowerShell teljes és relatív elérésiút-formátumát ismerteti.

Hosszú leírás

Egy PowerShell-szolgáltatón keresztül elérhető adattár minden eleme egyedileg azonosítható az elérési út neve alapján. Az elérési út az elem nevének, az elem tárolójának és alkontainereinek, valamint annak a PowerShell-meghajtónak a kombinációja, amelyen keresztül a tárolók elérhetők.

A PowerShellben az elérési utak neve kétféle lehet: teljesen minősített és relatív. Egy teljes elérési út minden olyan elemből áll, amely egy elérési utat alkot. Az alábbi szintaxis egy teljesen meghatározott elérési út elemeit ábrázolja.

[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>

A <provider> helyőrző arra a PowerShell-szolgáltatóra hivatkozik, amelyen keresztül hozzáfér az adattárhoz. A Fájlrendszer-szolgáltató például lehetővé teszi a számítógépen található fájlok és könyvtárak elérését. A szintaxis ezen eleme nem kötelező, és soha nem szükséges, mert a meghajtónevek minden szolgáltatóban egyediek.

A <drive> helyőrző az adott PowerShell-szolgáltató által támogatott PowerShell-meghajtóra hivatkozik. A Fájlrendszer-szolgáltató esetében a PowerShell-meghajtók a rendszerén konfigurált Windows-meghajtókat jelenítik meg. Ha például a rendszer tartalmaz egy A: meghajtót és egy C: meghajtót, a Fájlrendszer-szolgáltató ugyanazokat a meghajtókat hozza létre a PowerShellben.

A meghajtó megadása után meg kell adnia azokat a tárolókat és al-tárolókat, amelyek tartalmazzák az elemet. A tárolókat abban a hierarchikus sorrendben kell megadni, amelyben az adattárban léteznek. Más szóval, el kell kezdenie a szülőtárolóval, majd a szülőtárolóban lévő gyermektárolóval, ismételve ezt a mintát minden egyes gyermektárolóra. Emellett minden tároló elé kötelező fordított perjelet helyezni.

Jegyzet

A PowerShell lehetővé teszi, hogy a visszaperjelet (\) vagy a perjelet (/) használja a PowerShell kompatibilitása érdekében más platformokon. Ez a PowerShell-parancsok esetében működik, de előfordulhat, hogy nem működik, ha olyan natív alkalmazásokkal használja, amelyek csak a natív címtárelválasztót várják. A [System.IO.Path]::DirectorySeparatorChar használatával keresse meg a platformhoz használt karaktert.

A tároló és az alkontainerek megadása után meg kell adnia az elem nevét, amelyet fordított perjel előz meg. Például a Shell.dll fájl teljes elérési útja a C:\Windows\System32 könyvtárban a következő:

C:\Windows\System32\Shell.dll

Ebben az esetben a tárolók elérésének meghajtója a C: meghajtó, a legfelső szintű tároló Windows, az alkontainer System32, az elem pedig Shell.dll.

Bizonyos esetekben nem kell teljesen minősített elérési utat megadnia, hanem relatív elérési utat kell használnia. A PowerShell lehetővé teszi egy elem azonosítását az aktuális munkahelyhez viszonyított helye alapján.

A PowerShell a következő karaktersorozatokkal adja meg a relatív elérési utakat.

  • (.) – Aktuális hely
  • (..) – Az aktuális hely szülője
  • (\) – Az aktuális hely gyökere

Az alábbi példák arra vonatkoznak, hogy az aktuális munkakönyvtár be van állítva C:\Windows-ra.

  • A relatív elérési út .\System úgy oldódik meg, mint C:\Windows\System
  • A relatív elérési út ..\Program Files úgy oldódik meg, mint C:\Program Files
  • A relatív elérési út \Program Files úgy oldódik meg, mint C:\Program Files
  • A relatív elérési út System úgy oldódik meg, mint C:\Windows\System

Ha egy parancsban elérési útvonalat használ, használhat teljes útvonalat vagy relatív útvonalat. Tegyük fel például, hogy az aktuális munkakönyvtár C:\Windows. Az alábbi Get-ChildItem parancs lekéri a C:\TechDocs könyvtár összes elemét:

Get-ChildItem \TechDocs

A fordított perjel azt jelzi, hogy az aktuális munkahely meghajtógyökerét kell használni. Mivel a munka könyvtára a C:\Windows, a meghajtó gyökere a C: meghajtó. Mivel a TechDocs könyvtár a gyökéren kívül található, csak a fordított perjelet kell megadnia.

Ugyanazokat az eredményeket kapja a teljes elérési útvonal használatával:

Get-ChildItem C:\TechDocs

Függetlenül attól, hogy teljes elérési utat vagy relatív elérési utat használ, az elérési út nem csak azért fontos, mert megkeres egy elemet, hanem azért is, mert egyedileg azonosítja az elemet, még akkor is, ha az elem ugyanazzal a névvel rendelkezik, mint egy másik tárolóban lévő másik elem.

Tegyük fel például, hogy van két fájl, amelyek mindegyikének neve Results.txt. Az első fájl egy C:\TechDocs\Jannevű könyvtárban, a második pedig egy C:\TechDocs\Febnevű könyvtárban található. Az első fájl elérési útja (C:\TechDocs\Jan\Results.txt) és a második fájl elérési útja (C:\TechDocs\Feb\Results.txt) lehetővé teszi a két fájl közötti egyértelmű különbséget.

A Win32-fájlnévtér támogatása

Windows rendszeren a Fájlrendszer-szolgáltatót támogató parancsmagok a Win32 Fájlnévtér formátumot használó elérési utakat is támogatják. Ezeket az elérési utakat csak a parancsmagok LiteralPath paraméterével használhatja.

A Win32-fájlnévtér elérési útjai \\?\előtaggal vannak elnevezettek. Az előtag azt jelzi a Windows API-nak, hogy tiltsa le az összes karakterlánc-elemzést, és közvetlenül küldje el a karakterláncot a fájlrendszerbe. Ha például a fájlrendszer támogatja a nagy elérési utakat és fájlneveket, túllépheti a Windows API-k által egyébként kikényszerített MAX_PATH korlátokat.

További információ: Win32-fájlnévterekelnevezési fájlok, elérési utak és névterek.

Lásd még