about_Path_Syntax
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ét típus egyike lehet: teljes mértékben minősített és relatív. A teljes elérési út az elérési utat alkotó összes elemből áll. Az alábbi szintaxis egy teljes elérési út elemeit mutatja be:
[<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ő egy adott PowerShell-szolgáltató által támogatott PowerShell-meghajtóra hivatkozik. A Fájlrendszer-szolgáltató esetében a PowerShell-meghajtók a rendszeren konfigurált Windows-meghajtókra vannak leképezve.
Ha például a rendszer tartalmaz egy meghajtót és egy A:
meghajtót C:
, a Fájlrendszer-szolgáltató ugyanazokat a meghajtókat hozza létre a PowerShellben.
A meghajtó megadása után meg kell adnia az elemet tartalmazó tárolókat és alkontainereket. A tárolókat abban a hierarchikus sorrendben kell megadni, amelyben az adattárban léteznek. Más szóval először a szülőtárolóval, majd a szülőtároló gyermektárolójával kell kezdenie, és meg kell ismételnie az egyes gyermektárolók mintáját. Emellett minden tárolót fordított perjelnek kell megelőznie.
Feljegyzés
A PowerShell lehetővé teszi fordított perjel vagy perjel használatát más platformokon a PowerShell-lel való kompatibilitás érdekében. 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 platformhoz használt karakter megkereséséhez használható [System.IO.Path]::DirectorySeparatorChar
.
A tároló és az alkontainerek megadása után meg kell adnia az elem nevét, amelyet fordított perjel előz meg. A könyvtárban lévő fájl teljes elérési útja Shell.dll
például a C:\Windows\System32
következő:
C:\Windows\System32\Shell.dll
Ebben az esetben az a meghajtó, amelyen keresztül a tárolók elérhetők, a C:
legfelső szintű tároló Windows
, az alkontainer System32
és az elem 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 a jelenlegi munkakönyvtáron alapulnak C:\Windows
.
- A relatív elérési út
.\System
a következőként oldható fel:C:\Windows\System
- A relatív elérési út
..\Program Files
a következőként oldható fel:C:\Program Files
- A relatív elérési út
\Program Files
a következőként oldható fel:C:\Program Files
- A relatív elérési út
System
a következőként oldható fel:C:\Windows\System
Ha egy parancsban elérési utat használ, használhat teljes elérési utat vagy relatívt. Tegyük fel például, hogy az aktuális munkakönyvtára .C:\Windows
A következő Get-ChildItem
parancs lekéri a könyvtár összes elemét C:\TechDocs
:
Get-ChildItem \TechDocs
A fordított perjel azt jelzi, hogy az aktuális munkahely meghajtógyökerét kell használni. Mivel a munkakönyvtár az C:\Windows
, a meghajtó gyökérkönyvtára a C:
meghajtó. Mivel a könyvtár a TechDocs
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 út 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 két fájl neve Results.txt
van. Az első fájl egy névvel ellátott C:\TechDocs\Jan
könyvtárban, a második pedig egy névvel ellátott C:\TechDocs\Feb
könyvtárban található. Az első fájl (C:\TechDocs\Jan\Results.txt
) elérési útja é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 arra utasítja a Windows API-kat, hogy tiltsa le az összes sztring-elemzést, és küldje el a közvetlenül a fájlrendszerbe a következő sztringet. 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 érvényes MAX_PATH korlátokat.
További információ: Win32-fájlnévterek az elnevezési fájlokban, elérési utakban és névterekben.