Cómo unir rutas para combinar más de dos cadenas en una ruta de archivo en PowerShell

  1. Usa el valor Join-Path para combinar más de dos cadenas en una ruta de archivo en PowerShell
  2. Conclusión
Cómo unir rutas para combinar más de dos cadenas en una ruta de archivo en PowerShell

El cmdlet Join-Path permite al usuario combinar cadenas en una sola ruta. A veces, puede ser necesario combinar rutas para crear una sola ruta al trabajar en PowerShell.

Es aquí donde el cmdlet Join-Path entra en acción. Muchas rutas secundarias se pueden combinar o agregar a la ruta principal para crear una sola ruta.

El parámetro -Path especifica la ruta principal a la cual se agrega la ruta secundaria. El valor de -Path determina qué proveedor une las rutas y añade los delimitadores de ruta.

Proporciona el delimitador \ para unir las rutas. El parámetro -ChildPath especifica las rutas a agregar al valor del parámetro -Path.

Por ejemplo, el siguiente comando utiliza Join-Path para combinar la ruta principal hello y una ruta secundaria world.

Join-Path -Path "hello" -ChildPath "world"

Salida:

unir ruta de powershell - salida 1

El cmdlet Join-Path acepta solo dos entradas de cadena o un parámetro -ChildPath. Usando el comando único, no puedes usar Join-Path para combinar más de dos cadenas en una ruta de archivo.

Necesitarás usar múltiples declaraciones Join-Path juntas para combinar más de dos cadenas en una ruta de archivo en PowerShell.

Usa el valor Join-Path para combinar más de dos cadenas en una ruta de archivo en PowerShell

Dado que el valor de ruta Join-Path puede enviar al pipeline, puedes canalizar múltiples declaraciones Join-Path juntas para combinar más de dos cadenas en una ruta de archivo.

Por ejemplo, el siguiente código combina las cuatro cadenas y crea una sola ruta C:\content\software\PowerShell.

Join-Path -Path "C:" -ChildPath "content" | Join-Path -ChildPath "software" | Join-Path -ChildPath "PowerShell"

En este fragmento de código, estás utilizando el cmdlet Join-Path múltiples veces para construir gradualmente una ruta de archivo. Con cada llamada a Join-Path, estás tomando la ruta actual y extendiéndola añadiendo otro segmento.

Esto se hace canalizando la salida de cada operación Join-Path a la siguiente, construyendo esencialmente la ruta de archivo final pieza por pieza. El parámetro -ChildPath es clave aquí, ya que especifica el segmento adicional a añadir a la ruta existente.

Como resultado, el código crea efectivamente una ruta de archivo completa al combinar la ruta base C: con las cadenas subsiguientes content, software y PowerShell.

Salida:

powershell unir ruta - salida 2

Combinando múltiples rutas de archivos con una ruta secundaria en PowerShell

El propósito principal de combinar múltiples rutas con una ruta secundaria es crear rutas de archivo completamente calificadas en PowerShell. Al entender cómo combinar múltiples rutas con una ruta secundaria, puedes construir dinámicamente rutas de archivo de manera eficiente, mejorando la flexibilidad y legibilidad de tus scripts de PowerShell.

Join-Path -Path "Path1\", "Path2\" -ChildPath "Folder\File.txt"

En este fragmento de código, estás utilizando el cmdlet Join-Path para fusionar dos rutas (Path1 y Path2) con una ruta secundaria (Folder\File.txt). Al pasar una matriz de rutas raíz a través del parámetro -Path y especificar la ruta secundaria con -ChildPath, estás creando rutas de archivo completamente calificadas.

En consecuencia, la salida presenta las rutas de archivo completas formadas al combinar cada ruta con la ruta secundaria proporcionada. Este método ofrece una forma sencilla de integrar múltiples rutas en una sola ruta de archivo, mejorando la versatilidad de tus scripts de PowerShell.

Salida:

powershell unir ruta - salida 3

Combinando raíces de un sistema de archivos con una ruta secundaria en PowerShell

Al tratar con múltiples raíces de ruta y una ruta secundaria, el cmdlet Join-Path, en conjunto con la entrada de matriz y el parámetro -ChildPath, proporciona una forma eficiente de fusionar componentes de ruta dispares en una ruta de archivo cohesiva.

En el contexto del cmdlet Get-PSDrive, el parámetro -PSProvider filtra las unidades en función del proveedor al que pertenecen.

Get-PSDrive -PSProvider filesystem | ForEach-Object { $_.root } | Join-Path -ChildPath "SubFolder"

En este fragmento de código, estás utilizando el cmdlet Get-PSDrive para obtener las rutas raíz de todas las unidades del sistema de archivos. Luego, canalizas los resultados a ForEach-Object para extraer cada ruta raíz.

Estas rutas raíz se pasan posteriormente a Join-Path junto con la ruta secundaria SubFolder. El cmdlet Join-Path combina cada ruta raíz con la ruta secundaria, creando rutas de archivo completamente calificadas.

Este método te permite generar dinámicamente rutas de archivo en función de las rutas raíz de las unidades actualmente accesibles en tu sistema.

Salida:

powershell unir ruta - salida 4

Conclusión

En conclusión, el cmdlet Join-Path en PowerShell sirve como una herramienta valiosa para combinar cadenas en una sola ruta de archivo. Si bien normalmente acepta solo dos entradas de cadena o un parámetro -ChildPath, puedes superar esta limitación encadenando múltiples declaraciones Join-Path juntas.

Este artículo exploró varios métodos para combinar múltiples cadenas en una ruta de archivo usando Join-Path, incluyendo el uso del cmdlet múltiples veces en sucesión y canalizando la salida de una operación Join-Path en otra. Al entender estas técnicas, puedes construir dinámicamente rutas de archivo basadas en diferentes escenarios y requisitos en tus scripts de PowerShell.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artículo relacionado - PowerShell String

Artículo relacionado - PowerShell Path