Partilhar via


about_Path_Syntax

Breve descrição

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 através 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 suportada por 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 contenham 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 contentor deve ser precedido de uma barra invertida.

Nota

O PowerShell permite que você use barra invertida ou barra invertida 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 tiverem sido 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 através da 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 seguintes sequências de caracteres 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 que outro item em um contêiner diferente.

Por exemplo, suponha que você tenha dois arquivos com o nome Results.txtde . 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 que você distinga claramente entre os dois arquivos.

Suporte para o namespace Win32 File

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

Os caminhos no namespace Arquivo Win32 são prefixados com \\?\. O prefixo diz à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 oferecer suporte a caminhos grandes e nomes de arquivos, você poderá exceder os limites de MAX_PATH impostos pelas APIs do Windows.

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

Consulte também