Compartilhar via


about_Path_Syntax

Descrição breve

Descreve os formatos de caminho completo e relativo no PowerShell.

Descrição longa

Todos os itens em um armazenamento de dados acessível por meio de um provedor do PowerShell podem ser identificados exclusivamente por seus nomes de caminho. Um caminho é uma combinação do nome do item, do contêiner e dos subcontêineres nos quais o item está localizado e da unidade do PowerShell por meio da qual os contêineres são acessados.

No PowerShell, os nomes de caminho podem ser de dois tipos: totalmente qualificados e relativos. Um caminho totalmente qualificado consiste em todos os elementos que compõem um caminho. A sintaxe a seguir mostra os elementos em um caminho totalmente qualificado:

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

O <provider> espaço reservado refere-se ao provedor do PowerShell por meio do qual você acessa o armazenamento de dados. Por exemplo, o provedor FileSystem permite que você acesse os arquivos e diretórios em seu computador. Esse elemento da sintaxe é opcional e nunca é necessário porque os nomes das unidades são exclusivos em todos os provedores.

O <drive> espaço reservado refere-se à unidade do PowerShell compatível com um provedor específico do PowerShell. No caso do provedor FileSystem, as unidades do PowerShell são mapeadas para as unidades do Windows configuradas em seu sistema. Por exemplo, se o sistema incluir uma A: unidade e uma C: unidade, o provedor FileSystem criará as mesmas unidades no PowerShell.

Depois de especificar a unidade, você deve especificar todos os contêineres e subcontêineres que contêm o item. Os contêineres devem ser especificados na ordem hierárquica em que existem no armazenamento de dados. Em outras palavras, você deve começar com o contêiner pai e, em seguida, o contêiner filho nesse contêiner pai, repetindo o padrão para cada contêiner filho. Além disso, cada contêiner deve ser precedido por uma barra invertida.

Observação

O PowerShell permite que você use barra invertida ou barra para compatibilidade com o PowerShell em outras plataformas. Isso funciona para comandos do PowerShell, mas pode não funcionar quando usado com aplicativos nativos que esperam apenas o separador de diretório nativo. Use [System.IO.Path]::DirectorySeparatorChar para encontrar o personagem usado para sua plataforma.

Depois que o contêiner e os subcontêineres forem especificados, você deverá fornecer o nome do item, precedido por uma barra invertida. Por exemplo, o nome do caminho totalmente qualificado para o Shell.dll arquivo no diretório é o C:\Windows\System32 seguinte:

C:\Windows\System32\Shell.dll

Nesse caso, a unidade pela qual os contêineres são acessados é a C: unidade, o contêiner de nível superior é Windows, o subcontêiner é System32, e o item é Shell.dll.

Em algumas situações, você não precisa especificar um caminho totalmente qualificado e, em vez disso, pode usar um caminho relativo. O PowerShell permite que você identifique um item com base em sua localização em relação ao local de trabalho atual.

O PowerShell usa as sequências de caracteres a seguir para especificar caminhos relativos.

  • (.) - Localização atual
  • (..) - Pai da localização atual
  • (\) - Raiz da localização atual

Os exemplos a seguir são baseados no diretório de trabalho atual que está sendo definido como C:\Windows.

  • O caminho .\System relativo é resolvido como C:\Windows\System
  • O caminho ..\Program Files relativo é resolvido como C:\Program Files
  • O caminho \Program Files relativo é resolvido como C:\Program Files
  • O caminho System relativo é resolvido como C:\Windows\System

Ao usar um caminho em um comando, você pode usar um caminho totalmente qualificado ou relativo. Por exemplo, suponha que seu diretório de trabalho atual seja C:\Windows. O comando a seguir Get-ChildItem recupera todos os itens no C:\TechDocs diretório:

Get-ChildItem \TechDocs

A barra invertida indica que a raiz da unidade do local de trabalho atual deve ser usada. Como o diretório de trabalho é C:\Windows, a raiz da unidade é a C: unidade. Como o TechDocs diretório está localizado fora da raiz, você precisa especificar apenas a barra invertida.

Você obtém os mesmos resultados usando o caminho totalmente qualificado:

Get-ChildItem C:\TechDocs

Independentemente de você usar um caminho totalmente qualificado ou um nome de caminho relativo, um caminho é importante não apenas porque localiza um item, mas também porque identifica exclusivamente o item, mesmo que esse item compartilhe o mesmo nome de outro item em um contêiner diferente.

Por exemplo, suponha que você tenha dois arquivos nomeados Results.txt. O primeiro arquivo está em um diretório chamado C:\TechDocs\Jan, e o segundo arquivo está em um diretório chamado C:\TechDocs\Feb. O caminho para o primeiro arquivo (C:\TechDocs\Jan\Results.txt) e o caminho para o segundo arquivo (C:\TechDocs\Feb\Results.txt) permitem distinguir claramente entre os dois arquivos.

Suporte para o namespace de arquivo Win32

No Windows, os cmdlets que dão suporte ao provedor FileSystem também dão suporte aos caminhos que usam o formato de namespace de arquivo Win32. Você só pode usar esses caminhos com o parâmetro LiteralPath dos cmdlets.

Os caminhos no namespace de arquivo Win32 são prefixados com \\?\. O prefixo informa às APIs do Windows para desabilitar toda a análise de cadeia de caracteres e enviar a cadeia de caracteres que segue diretamente para o sistema de arquivos. Por exemplo, se o sistema de arquivos der suporte a caminhos grandes e nomes de arquivo, você poderá exceder os limites de MAX_PATH que, de outra forma, são impostos pelas APIs do Windows.

Para obter mais informações, consulte Namespaces de arquivo Win32 em Nomeando arquivos, caminhos e namespaces.

Confira também