Compartir a través de


about_Path_Syntax

Descripción breve

Describe los formatos de ruta de acceso completa y relativa en PowerShell.

Descripción larga

Todos los elementos de un almacén de datos accesibles a través de un proveedor de PowerShell se pueden identificar de forma única por sus nombres de ruta de acceso. Una ruta de acceso es una combinación del nombre del elemento, el contenedor y los subcontenedores en los que se encuentra el elemento y la unidad de PowerShell a la que se accede a los contenedores.

En PowerShell, los nombres de ruta de acceso pueden ser uno de dos tipos: completo y relativo. Una ruta de acceso completa consta de todos los elementos que componen una ruta de acceso. La sintaxis siguiente muestra los elementos de una ruta de acceso completa:

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

El <provider> marcador de posición hace referencia al proveedor de PowerShell a través del cual se accede al almacén de datos. Por ejemplo, el proveedor FileSystem permite acceder a los archivos y directorios del equipo. Este elemento de la sintaxis es opcional y nunca es necesario porque los nombres de unidad son únicos en todos los proveedores.

El <drive> marcador de posición hace referencia a la unidad de PowerShell compatible con un proveedor de PowerShell determinado. En el caso del proveedor FileSystem, las unidades de PowerShell se asignan a las unidades de Windows configuradas en el sistema. Por ejemplo, si el sistema incluye una A: unidad y una C: unidad, el proveedor FileSystem crea las mismas unidades en PowerShell.

Después de especificar la unidad, debe especificar los contenedores y subcontenedores que contengan el elemento. Los contenedores deben especificarse en el orden jerárquico en el que existen en el almacén de datos. En otras palabras, debe comenzar con el contenedor primario y, a continuación, el contenedor secundario de ese contenedor primario, repitiendo el patrón para cada contenedor secundario. Además, cada contenedor debe ir precedido de una barra diagonal inversa.

Nota:

PowerShell permite usar barras diagonales inversas o barras diagonales para la compatibilidad con PowerShell en otras plataformas. Esto funciona para los comandos de PowerShell, pero es posible que no funcionen cuando se usan con aplicaciones nativas que solo esperan el separador de directorio nativo. Use [System.IO.Path]::DirectorySeparatorChar para buscar el carácter usado para la plataforma.

Después de especificar el contenedor y los subcontenedores, debe proporcionar el nombre del elemento, precedido de una barra diagonal inversa. Por ejemplo, el nombre de ruta de acceso completo para el Shell.dll archivo en el C:\Windows\System32 directorio es el siguiente:

C:\Windows\System32\Shell.dll

En este caso, la unidad a la que se accede a los contenedores es la C: unidad, el contenedor de nivel superior es Windows, el subcontenidor es System32y el elemento es Shell.dll.

En algunas situaciones, no es necesario especificar una ruta de acceso completa y, en su lugar, puede usar una ruta de acceso relativa. PowerShell permite identificar un elemento en función de su ubicación en relación con la ubicación de trabajo actual.

PowerShell usa las siguientes secuencias de caracteres para especificar rutas de acceso relativas.

  • () -. Ubicación actual
  • () -.. Elemento primario de la ubicación actual
  • (\) - Raíz de la ubicación actual

Los ejemplos siguientes se basan en el directorio de trabajo actual que se establece C:\Windowsen .

  • La ruta de acceso .\System relativa se resuelve como C:\Windows\System
  • La ruta de acceso ..\Program Files relativa se resuelve como C:\Program Files
  • La ruta de acceso \Program Files relativa se resuelve como C:\Program Files
  • La ruta de acceso System relativa se resuelve como C:\Windows\System

Al usar una ruta de acceso en un comando, puede usar una ruta de acceso completa o una relativa. Por ejemplo, suponga que el directorio de trabajo actual es C:\Windows. El comando siguiente Get-ChildItem recupera todos los elementos del C:\TechDocs directorio:

Get-ChildItem \TechDocs

La barra diagonal inversa indica que se debe usar la raíz de unidad de la ubicación de trabajo actual. Dado que el directorio de trabajo es C:\Windows, la raíz de la unidad es la C: unidad. Dado que el TechDocs directorio se encuentra fuera de la raíz, debe especificar solo la barra diagonal inversa.

Obtiene los mismos resultados mediante la ruta de acceso completa:

Get-ChildItem C:\TechDocs

Independientemente de si usa una ruta de acceso completa o un nombre de ruta de acceso relativa, una ruta de acceso es importante no solo porque busca un elemento, sino también porque identifica de forma única el elemento incluso si ese elemento comparte el mismo nombre que otro elemento en un contenedor diferente.

Por ejemplo, supongamos que tiene dos archivos denominados .Results.txt El primer archivo está en un directorio denominado C:\TechDocs\Jany el segundo está en un directorio denominado C:\TechDocs\Feb. La ruta de acceso del primer archivo (C:\TechDocs\Jan\Results.txt) y la ruta de acceso del segundo archivo (C:\TechDocs\Feb\Results.txt) le permiten distinguir claramente entre los dos archivos.

Compatibilidad con el espacio de nombres de archivo Win32

En Windows, los cmdlets que admiten el proveedor FileSystem también admiten las rutas de acceso que usan el formato de espacio de nombres de archivo Win32. Solo puede usar estas rutas de acceso con el parámetro LiteralPath de los cmdlets.

Las rutas de acceso del espacio de nombres de archivo Win32 tienen el \\?\prefijo . El prefijo indica a las API de Windows que deshabiliten todo el análisis de cadenas y envíen la cadena que sigue directamente al sistema de archivos. Por ejemplo, si el sistema de archivos admite rutas de acceso y nombres de archivo grandes, puede superar los límites de MAX_PATH que, de lo contrario, aplicarán las API de Windows.

Para obtener más información, vea Espacios de nombres de archivo Win32 en Archivos de nomenclatura, rutas de acceso y espacios de nombres.

Consulte también