about_Path_Syntax

Korte beschrijving

Hierin worden de volledige en relatieve padindelingen in PowerShell beschreven.

Lange beschrijving

Alle items in een gegevensarchief die toegankelijk zijn via een PowerShell-provider, kunnen uniek worden geïdentificeerd door hun padnamen. Een pad is een combinatie van de itemnaam, de container en subcontainers waarin het item zich bevindt en het PowerShell-station waarmee de containers worden geopend.

In PowerShell kunnen padnamen een van de volgende twee typen zijn: volledig gekwalificeerd en relatief. Een volledig gekwalificeerd pad bestaat uit alle elementen waaruit een pad bestaat. De volgende syntaxis toont de elementen in een volledig gekwalificeerde padnaam:

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

De <provider> tijdelijke aanduiding verwijst naar de PowerShell-provider waarmee u toegang hebt tot het gegevensarchief. Met de bestandssysteemprovider kunt u bijvoorbeeld toegang krijgen tot de bestanden en mappen op uw computer. Dit element van de syntaxis is optioneel en is nooit nodig omdat de stationsnamen uniek zijn voor alle providers.

De <drive> tijdelijke aanduiding verwijst naar het PowerShell-station dat wordt ondersteund door een bepaalde PowerShell-provider. In het geval van de Bestandssysteemprovider worden de PowerShell-stations toegewezen aan de Windows-stations die op uw systeem zijn geconfigureerd. Als uw systeem bijvoorbeeld een A: station en een C: station bevat, maakt de bestandssysteemprovider dezelfde stations in PowerShell.

Nadat u het station hebt opgegeven, moet u containers en subcontainers opgeven die het item bevatten. De containers moeten worden opgegeven in de hiërarchische volgorde waarin ze aanwezig zijn in het gegevensarchief. Met andere woorden, u moet beginnen met de bovenliggende container en vervolgens de onderliggende container in die bovenliggende container, waarbij het patroon voor elke onderliggende container wordt herhaald. Bovendien moet elke container worden voorafgegaan door een backslash.

Notitie

Met PowerShell kunt u backslash of slash gebruiken voor compatibiliteit met PowerShell op andere platforms. Dit werkt voor PowerShell-opdrachten, maar werkt mogelijk niet bij gebruik met systeemeigen toepassingen die alleen het systeemeigen mapscheidingsteken verwachten. Gebruik [System.IO.Path]::DirectorySeparatorChar dit om het teken te vinden dat wordt gebruikt voor uw platform.

Nadat de container en subcontainers zijn opgegeven, moet u de itemnaam opgeven, voorafgegaan door een backslash. De volledig gekwalificeerde padnaam voor het Shell.dll bestand in de C:\Windows\System32 map is bijvoorbeeld als volgt:

C:\Windows\System32\Shell.dll

In dit geval is het station waarmee de containers worden geopend het C: station, de container op het hoogste niveau is Windows, de subcontainer is System32en het item is Shell.dll.

In sommige situaties hoeft u geen volledig gekwalificeerd pad op te geven en kunt u in plaats daarvan een relatief pad gebruiken. Met PowerShell kunt u een item identificeren op basis van de locatie ten opzichte van de huidige werklocatie.

PowerShell gebruikt de volgende tekenreeksen om relatieve paden op te geven.

  • (.) - Huidige locatie
  • (..) - Bovenliggende van huidige locatie
  • (\) - Hoofdmap van huidige locatie

De volgende voorbeelden zijn gebaseerd op de huidige werkmap waarop wordt ingesteld C:\Windows.

  • Het relatieve pad .\System wordt omgezet als C:\Windows\System
  • Het relatieve pad ..\Program Files wordt omgezet als C:\Program Files
  • Het relatieve pad \Program Files wordt omgezet als C:\Program Files
  • Het relatieve pad System wordt omgezet als C:\Windows\System

Wanneer u een pad in een opdracht gebruikt, kunt u een volledig gekwalificeerd pad of een relatief pad gebruiken. Stel dat uw huidige werkmap bijvoorbeeld is C:\Windows. Met de volgende Get-ChildItem opdracht worden alle items in de C:\TechDocs map opgehaald:

Get-ChildItem \TechDocs

De backslash geeft aan dat de stationshoofdmap van de huidige werklocatie moet worden gebruikt. Omdat de werkmap zich bevindt, is C:\Windowsde hoofdmap van het station het C: station. Omdat de TechDocs map zich buiten de hoofdmap bevindt, moet u alleen de backslash opgeven.

U krijgt dezelfde resultaten met behulp van het volledig gekwalificeerde pad:

Get-ChildItem C:\TechDocs

Ongeacht of u een volledig gekwalificeerd pad of een relatieve padnaam gebruikt, is een pad niet alleen belangrijk omdat het een item zoekt, maar ook omdat het item uniek identificeert, zelfs als dat item dezelfde naam als een ander item in een andere container deelt.

Stel dat u twee bestanden hebt met elke naam Results.txt. Het eerste bestand bevindt zich in een map met de naam C:\TechDocs\Janen het tweede bestand bevindt zich in een map met de naam C:\TechDocs\Feb. Met het pad voor het eerste bestand (C:\TechDocs\Jan\Results.txt) en het pad voor het tweede bestand (C:\TechDocs\Feb\Results.txt) kunt u duidelijk onderscheid maken tussen de twee bestanden.

Zie ook