Cómo obtener la ruta completa de los archivos en PowerShell

  1. Usa Get-ChildItem para Obtener la Ruta Completa de los Archivos en PowerShell
  2. Usa Select-Object para Obtener la Ruta Completa de los Archivos en PowerShell
  3. Usa Format-Table para Obtener la Ruta Completa de los Archivos en PowerShell
  4. Usa el Bucle foreach para Obtener la Ruta Completa de los Archivos en PowerShell
  5. Usa Format-List para Obtener la Ruta Completa de los Archivos en PowerShell
  6. Conclusión
Cómo obtener la ruta completa de los archivos en PowerShell

PowerShell tiene varios cmdlets para administrar los archivos en el sistema. Puedes crear, copiar, mover, renombrar y eliminar archivos utilizando PowerShell.

También puedes buscar archivos y verificar la existencia de un archivo en PowerShell. Una ruta de archivo indica la ubicación del archivo en el sistema.

Este tutorial introducirá diferentes métodos para obtener la ruta completa de los archivos en PowerShell.

Usa Get-ChildItem para Obtener la Ruta Completa de los Archivos en PowerShell

El cmdlet Get-ChildItem muestra una lista de archivos y directorios en la ubicación especificada. Puedes usar el parámetro -Recurse para listar todos los archivos y directorios de manera recursiva.

También muestra los subdirectorios y sus archivos. Es útil para la búsqueda de archivos recursiva en PowerShell.

Este enfoque se utiliza comúnmente en escenarios donde necesitas realizar operaciones en un conjunto de archivos repartidos a lo largo de una jerarquía de carpetas, como búsquedas de archivos, procesamiento por lotes o tareas de organización de datos.

Ejemplo:

Get-ChildItem -Path C:\ExampleDirectory -Filter *.txt -Recurse

Comenzamos designando nuestro directorio raíz con -Path C:\ExampleDirectory. Esta elección establece el punto de partida de nuestra búsqueda, asegurando que estamos buscando en el lugar correcto.

A continuación, introducimos el parámetro -Filter *.txt. Este es un movimiento estratégico de nuestra parte, ya que reduce significativamente nuestra búsqueda solo a aquellos archivos que tienen extensiones .txt.

Al hacerlo, evitamos de manera eficiente una multitud de archivos no relacionados, haciendo que nuestro script sea más enfocado y rápido en ejecución.

El verdadero cambio de juego en nuestro script es el parámetro -Recurse. Aquí es donde aprovechamos la capacidad de PowerShell para profundizar en las estructuras de directorio.

Con -Recurse, no solo estamos explorando la superficie de C:\ExampleDirectory; estamos explorando cada rincón y grieta, cada subdirectorio, sin importar cuán profundamente anidado esté.

Salida:

obtener la ruta completa de los archivos en powershell - salida 1

Puedes obtener la ruta completa del archivo canalizando el comando a %{$_.FullName}.

Ejemplo:

Get-ChildItem -Path ExampleDirectory\ -Filter sample.txt -Recurse | % { $_.FullName }

Salida:

obtener la ruta completa de los archivos en powershell - salida 2

O puedes usar este comando para obtener todos los archivos que tienen la extensión .txt y sus rutas en la ubicación especificada.

Ejemplo:

Get-ChildItem -Path ExampleDirectory\ -Recurse | where { $_.extension -eq ".txt" } | % { $_.FullName }

Salida:

obtener la ruta completa de los archivos en powershell - salida 3

Usa Select-Object para Obtener la Ruta Completa de los Archivos en PowerShell

Se utilizará un método similar, pero usaremos el cmdlet Select-Object con el comando Get-ChildItem para obtener la ruta completa de los archivos en PowerShell.

El cmdlet Select-Object selecciona propiedades específicas de un objeto o conjunto de objetos. Esta técnica es particularmente útil en escenarios donde necesitas auditar sistemas de archivos, gestionar datos o realizar operaciones de limpieza.

Ejemplo:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName

A través de este script, estamos aprovechando el poder combinado de Get-ChildItem y Select-Object para localizar y listar de manera eficiente archivos .txt. Iniciando nuestra búsqueda desde ExampleDirectory\, aseguramos que todos los subdirectorios relevantes estén incluidos.

El -Filter *.txt es un componente crucial, que nos permite centrarnos solo en archivos .txt, agilizando así nuestra búsqueda.

Al emplear -Recurse, no solo estamos rascando la superficie; estamos profundizando en cada subdirectorio, asegurándonos de que no se pase por alto ningún archivo. La magia ocurre con | Select-Object -ExpandProperty FullName, que refina nuestra salida para mostrar solo lo esencial: las rutas completas de los archivos.

Salida:

obtener la ruta completa de los archivos en powershell - salida 4

Usa Format-Table para Obtener la Ruta Completa de los Archivos en PowerShell

De manera similar, puedes usar Format-Table para obtener la ruta completa de los archivos en PowerShell. El cmdlet Format-Table formatea la salida como una tabla con las propiedades seleccionadas de un objeto.

El cmdlet Get-ChildItem, cuando se combina con Format-Table, se convierte en una herramienta poderosa no solo para recuperar rutas de archivos, sino también para presentarlas en un formato organizado y legible. Este método es particularmente útil para aquellos que necesitan evaluar y reportar rápidamente la estructura de su sistema de archivos.

Ejemplo:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-Table FullName

En este script, utilizamos estratégicamente Get-ChildItem para explorar ExampleDirectory\ y sus subdirectorios en busca de archivos .txt. El parámetro -Filter *.txt es clave, ya que asegura que nuestra búsqueda sea enfocada y eficiente, ignorando tipos de archivos irrelevantes.

La bandera -Recurse es crucial para una búsqueda exhaustiva, asegurando que ningún subdirectorio quede sin explorar.

Después de la búsqueda, empleamos | Format-Table FullName para transformar nuestros hallazgos en una tabla bien organizada. Esto no solo mejora la legibilidad, sino que también proporciona una vista clara y estructurada de las rutas completas.

Salida:

obtener la ruta completa de los archivos en powershell - salida 5

Usa el Bucle foreach para Obtener la Ruta Completa de los Archivos en PowerShell

El bucle foreach también se conoce como la declaración foreach en PowerShell. Es una construcción del lenguaje para recorrer una serie de valores en una colección de matrices, objetos, cadenas, números, etc.

Puedes ejecutar uno o más comandos contra cada elemento en un arreglo dentro del bucle foreach.

Ejemplo:

Get-ChildItem -Path ExampleDirectory\*.txt -Recurse | foreach { "$_" }

En este script, comenzamos desplegando Get-ChildItem para buscar meticulosamente ExampleDirectory\ en busca de archivos .txt.

La inclusión de -Recurse asegura una búsqueda completa a través de todas las capas de subdirectorios. Cada archivo encontrado se canaliza a un bucle foreach.

Dentro de este bucle, $_ actúa como un marcador de posición para el archivo actual. Al encerrar $_ en comillas y mostrarlo, le indicamos a PowerShell que muestre la ruta completa de cada archivo.

Este enfoque no solo trata de recuperar datos; es una caminata metódica a través de cada archivo, ofreciendo la flexibilidad de agregar operaciones más complejas dentro del bucle.

Salida:

obtener la ruta completa de los archivos en powershell - salida 6

El comando anterior no funciona con el parámetro -Filter. Puedes canalizar al cmdlet Get-Item en el medio para usar el parámetro -Filter.

Ejemplo:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Get-Item | foreach { "$_" }

La adición de Get-Item en el pipeline es un paso clave, ya que permite que el parámetro -Filter se utilice de manera efectiva, asegurando que solo se procesen archivos .txt.

Salida:

obtener la ruta completa de los archivos en powershell - salida 7

Get-ChildItem tiene alias incorporados ls, dir y gci. Puedes ejecutar todos los comandos anteriores usando cualquiera de los alias en lugar del cmdlet Get-ChildItem.

Ejemplo:

gci -Path ExampleDirectory\ -Filter *.txt -Recurse | % { $_.FullName }

Al usar alias, este comando se vuelve mucho más conciso mientras mantiene su funcionalidad. Los usuarios que provienen de diferentes entornos (como Unix/Linux o líneas de comandos más antiguas de Windows) pueden encontrar más familiares ls o dir.

Salida:

obtener la ruta completa de los archivos en powershell - salida 8

Usa Format-List para Obtener la Ruta Completa de los Archivos en PowerShell

El cmdlet Get-ChildItem es versátil para navegar y recuperar información sobre archivos y directorios. Cuando se utiliza con el parámetro -Filter, puede dirigirse específicamente a archivos de un tipo determinado, como archivos .txt.

Format-List, por otro lado, muestra las propiedades de los objetos en un formato de lista. Cuando se combina con Get-ChildItem, se puede utilizar para presentar rutas de archivos en una lista clara y legible.

Ejemplo:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-List FullName

En nuestro código, utilizamos Get-ChildItem para buscar minuciosamente ExampleDirectory\ y sus subdirectorios (-Recurse) en busca de archivos con una extensión .txt (-Filter *.txt). Cada archivo descubierto se transfiere sin problemas a través de un pipeline (|) al cmdlet Format-List.

Nos centramos en extraer la propiedad FullName de cada archivo, que representa su ruta completa. Este método es particularmente efectivo para crear una lista de rutas de archivos bien organizada y legible.

Salida:

obtener la ruta completa de los archivos en powershell - salida 9

Conclusión

Para concluir, PowerShell ofrece una plétora de cmdlets para una gestión de archivos competente. En este artículo, exploramos varios métodos para recuperar la ruta completa de los archivos utilizando PowerShell, aprovechando especialmente el cmdlet Get-ChildItem en combinación con otros cmdlets como Format-List, Select-Object, y Format-Table.

Estas técnicas son invaluables para tareas que involucran auditorías de sistemas de archivos, gestión de datos y procesamiento por lotes. Cada método que discutimos proporciona un enfoque único para manejar rutas de archivos, ya sea filtrando tipos de archivos específicos, listando rutas en una tabla formateada o iterando a través de archivos con un bucle foreach.

Para los lectores que buscan profundizar su experiencia en PowerShell, los próximos pasos podrían involucrar explorar técnicas de manipulación de archivos más avanzadas, profundizar en el scripting de PowerShell para la automatización, o incluso integrar comandos de PowerShell con otras herramientas y scripts para flujos de trabajo más complejos.

¿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 File