Udostępnij za pośrednictwem


about_Path_Syntax

Krótki opis

Opisuje formaty pełnej i względnej ścieżki w programie PowerShell.

Długi opis

Wszystkie elementy w magazynie danych dostępne za pośrednictwem dostawcy programu PowerShell mogą być jednoznacznie identyfikowane przez ich nazwy ścieżek. Ścieżka jest kombinacją nazwy elementu, kontenera i podkontenerów, w których znajduje się element, oraz dysku programu PowerShell, za pomocą którego uzyskuje się dostęp do kontenerów.

W programie PowerShell nazwy ścieżek mogą być jednym z dwóch typów: w pełni kwalifikowane i względne. W pełni kwalifikowana ścieżka składa się ze wszystkich elementów tworzących ścieżkę. Poniższa składnia przedstawia elementy w w pełni kwalifikowanej ścieżki:

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

Symbol <provider> zastępczy odwołuje się do dostawcy programu PowerShell, za pośrednictwem którego uzyskujesz dostęp do magazynu danych. Na przykład dostawca systemu plików umożliwia dostęp do plików i katalogów na komputerze. Ten element składni jest opcjonalny i nigdy nie jest potrzebny, ponieważ nazwy dysków są unikatowe dla wszystkich dostawców.

Symbol <drive> zastępczy odwołuje się do dysku programu PowerShell obsługiwanego przez określonego dostawcę programu PowerShell. W przypadku dostawcy systemu plików dyski programu PowerShell są mapowane na dyski systemu Windows skonfigurowane w systemie. Jeśli na przykład system zawiera A: dysk i C: dysk, dostawca systemu plików tworzy te same dyski w programie PowerShell.

Po określeniu dysku należy określić wszystkie kontenery i podkontenery zawierające element. Kontenery muszą być określone w kolejności hierarchicznej, w której istnieją w magazynie danych. Innymi słowy, należy rozpocząć od kontenera nadrzędnego, a następnie kontener podrzędny w tym kontenerze nadrzędnym, powtarzając wzorzec dla każdego kontenera podrzędnego. Ponadto każdy kontener musi być poprzedzony ukośnikiem odwrotnym.

Uwaga

Program PowerShell umożliwia używanie ukośnika odwrotnego lub ukośnika do przodu w celu zachowania zgodności z programem PowerShell na innych platformach. Działa to w przypadku poleceń programu PowerShell, ale może nie działać w przypadku użycia z aplikacjami natywnymi, które oczekują tylko separatora katalogu natywnego. Użyj [System.IO.Path]::DirectorySeparatorChar polecenia , aby znaleźć znak używany dla platformy.

Po określeniu kontenera i podkontenerów należy podać nazwę elementu poprzedzoną ukośnikiem odwrotnym. Na przykład w pełni kwalifikowana nazwa Shell.dll ścieżki pliku w C:\Windows\System32 katalogu jest następująca:

C:\Windows\System32\Shell.dll

W tym przypadku dysk, za pomocą którego uzyskuje się dostęp do kontenerów, jest C: dysk, kontener najwyższego poziomu to Windows, podkontainer to System32, a element to Shell.dll.

W niektórych sytuacjach nie trzeba określać w pełni kwalifikowanej ścieżki i zamiast tego można użyć ścieżki względnej. Program PowerShell umożliwia identyfikowanie elementu na podstawie jego lokalizacji względem bieżącej lokalizacji roboczej.

Program PowerShell używa następujących sekwencji znaków do określania ścieżek względnych.

  • (.) — bieżąca lokalizacja
  • (..) — element nadrzędny bieżącej lokalizacji
  • (\) — katalog główny bieżącej lokalizacji

Poniższe przykłady są oparte na bieżącym katalogu roboczym ustawionym na C:\Windowswartość .

  • Ścieżka .\System względna jest rozpoznawana jako C:\Windows\System
  • Ścieżka ..\Program Files względna jest rozpoznawana jako C:\Program Files
  • Ścieżka \Program Files względna jest rozpoznawana jako C:\Program Files
  • Ścieżka System względna jest rozpoznawana jako C:\Windows\System

W przypadku używania ścieżki w poleceniu można użyć w pełni kwalifikowanej ścieżki lub względnej. Załóżmy na przykład, że bieżącym katalogem roboczym jest C:\Windows. Następujące Get-ChildItem polecenie pobiera wszystkie elementy w C:\TechDocs katalogu:

Get-ChildItem \TechDocs

Ukośnik odwrotny wskazuje, że należy użyć katalogu głównego dysku bieżącej lokalizacji roboczej. Ponieważ katalog roboczy to C:\Windows, katalog główny dysku jest dyskiem C: . TechDocs Ponieważ katalog znajduje się poza katalogem głównym, należy określić tylko ukośnik odwrotny.

Te same wyniki są uzyskiwane przy użyciu w pełni kwalifikowanej ścieżki:

Get-ChildItem C:\TechDocs

Niezależnie od tego, czy używasz w pełni kwalifikowanej ścieżki, czy nazwy ścieżki względnej, ścieżka jest ważna nie tylko dlatego, że lokalizuje element, ale także dlatego, że jednoznacznie identyfikuje element, nawet jeśli ten element ma taką samą nazwę jak inny element w innym kontenerze.

Załóżmy na przykład, że masz dwa pliki o nazwie Results.txt. Pierwszy plik znajduje się w katalogu o nazwie C:\TechDocs\Jan, a drugi plik znajduje się w katalogu o nazwie C:\TechDocs\Feb. Ścieżka pierwszego pliku (C:\TechDocs\Jan\Results.txt) i ścieżka drugiego pliku (C:\TechDocs\Feb\Results.txt) umożliwia wyraźne rozróżnienie między dwoma plikami.

Obsługa przestrzeni nazw plików Win32

W systemie Windows polecenia cmdlet, które obsługują dostawcę systemu plików, obsługują również ścieżki korzystające z formatu przestrzeni nazw plików Win32. Te ścieżki można używać tylko z parametrem LiteralPath poleceń cmdlet.

Ścieżki w przestrzeni nazw plików Win32 mają prefiks \\?\. Prefiks informuje interfejsy API systemu Windows, aby wyłączyć analizowanie wszystkich ciągów i wysłać ciąg, który następuje bezpośrednio do systemu plików. Jeśli na przykład system plików obsługuje duże ścieżki i nazwy plików, możesz przekroczyć limity MAX_PATH , które w przeciwnym razie są wymuszane przez interfejsy API systemu Windows.

Aby uzyskać więcej informacji, zobacz Przestrzenie nazw plików Win32 w nazwach plików, ścieżek i przestrzeni nazw.

Zobacz też