Cómo eliminar la ruta y la extensión del nombre de archivo en PowerShell

  1. Usa la propiedad BaseName para eliminar la ruta y extensión del nombre del archivo en PowerShell
  2. Usa la clase System.IO.Path para eliminar la ruta y extensión del nombre del archivo en PowerShell
  3. Conclusión
Cómo eliminar la ruta y la extensión del nombre de archivo en PowerShell

PowerShell admite el manejo de varias operaciones de archivos en el sistema. Puedes realizar tareas como crear, copiar, mover, renombrar, editar, eliminar y ver archivos en PowerShell.

Hay diferentes cmdlets en PowerShell que puedes usar para obtener el nombre ruta completa y extensión de un archivo. Al trabajar con archivos en el sistema, es posible que necesites obtener el nombre del archivo sin una ruta y extensión.

Este tutorial te enseñará a eliminar la ruta y la extensión del nombre del archivo en PowerShell.

Usa la propiedad BaseName para eliminar la ruta y extensión del nombre del archivo en PowerShell

El cmdlet Get-Item en PowerShell es una herramienta versátil utilizada para recuperar las propiedades de los elementos en tu sistema de archivos, como archivos y directorios. Una de estas propiedades es .BaseName, que es particularmente útil para nuestro propósito.

Ejemplo:

(Get-Item "sample.txt").BaseName

En este ejemplo, el script asume que sample.txt es un archivo en el directorio actual. Si el archivo está en un directorio diferente, debes incluir la ruta completa, como C:\folder\sample.txt.

Cuando ejecutamos (Get-Item "sample.txt").BaseName, PowerShell realiza dos acciones clave.

Primero, Get-Item "sample.txt" recupera el objeto archivo correspondiente a sample.txt. Luego, .BaseName accede a la propiedad de este objeto archivo que contiene el nombre del archivo sin la extensión.

Salida:

eliminar ruta y extensión de nombre de archivo en powershell - salida 1

Si deseas eliminar la ruta y la extensión en múltiples archivos, puedes usar el cmdlet Get-ChildItem. El siguiente comando muestra cómo obtener varios nombres de archivos sin una ruta y extensión en PowerShell.

Ejemplo

(Get-ChildItem "*.txt").BaseName

Esta línea de código enumerará los nombres base (nombres de archivos sin extensiones) de todos los archivos .txt en el directorio especificado.

  • Get-ChildItem "*.txt": Este comando obtiene todos los archivos .txt del directorio especificado.

  • .BaseName: Esta propiedad se accede para cada objeto archivo devuelto por Get-ChildItem, extrayendo solo el nombre del archivo sin su extensión.

Salida:

eliminar ruta y extensión del nombre de archivo en powershell - salida 2

También puedes utilizar la clase System.IO.FileInfo con la propiedad basename para obtener el nombre del archivo sin la extensión.

System.IO.FileInfo es una clase de .NET que proporciona propiedades y métodos de instancia para la creación, copia, eliminación, movimiento y apertura de archivos. También proporciona información detallada sobre un archivo, como su nombre, ruta, tamaño, etc.

Ejemplo:

([System.IO.FileInfo]"sample.txt").BaseName

Esta línea asume que sample.txt es un archivo en el directorio actual. Si el archivo está en otro lugar, se debe especificar la ruta completa, como C:\path\to\sample.txt.

En este ejemplo, ([System.IO.FileInfo]"sample.txt") crea un objeto FileInfo para el archivo sample.txt. Este objeto contiene información detallada sobre el archivo.

Al acceder a la propiedad .BaseName de este objeto, recuperamos el nombre del archivo sin su extensión.

Salida:

eliminar la ruta y la extensión del nombre de archivo en powershell - salida 3

Usa la clase System.IO.Path para eliminar la ruta y extensión del nombre del archivo en PowerShell

La clase System.IO.Path proporciona numerosos métodos para la manipulación de cadenas de rutas de archivos. El método GetFileNameWithoutExtension, en particular, se utiliza para obtener el nombre del archivo de una cadena del camino completo sin la extensión.

Ejemplo:

[System.IO.Path]::GetFileNameWithoutExtension("sample.txt")

Este ejemplo asume que sample.txt se refiere a un nombre de archivo sin ninguna ruta de directorio. Si el archivo está ubicado en un directorio diferente, debes incluir la ruta completa, como "C:\folder\sample.txt".

[System.IO.Path]::GetFileNameWithoutExtension("sample.txt"), PowerShell utiliza el método GetFileNameWithoutExtension de la clase System.IO.Path para procesar la cadena "sample.txt". Este método analiza inteligentemente la cadena, identifica la extensión del archivo y la elimina, devolviendo solo el nombre base del archivo.

Este método es altamente eficiente y no requiere que el archivo real exista, ya que opera puramente a nivel de cadena.

Salida:

eliminar ruta y extensión del nombre de archivo en powershell - salida 4

Conclusión

En conclusión, dominar la manipulación de archivos en PowerShell es integral para la administración eficiente del sistema, y este artículo se centró en eliminar la ruta y la extensión de los nombres de archivo utilizando diversos métodos. Comenzando con el simple (Get-Item "sample.txt").BaseName para archivos individuales, progresamos a manejar múltiples archivos con (Get-ChildItem "C:\Users\rhntm\*.txt").BaseName, un enfoque valioso para operaciones en bloque.

La clase más orientada a objetos [System.IO.FileInfo] con ([System.IO.FileInfo]"sample.txt").BaseName proporcionó información detallada del archivo, mientras que el poder de manipulación de cadenas de [System.IO.Path]::GetFileNameWithoutExtension("sample.txt") mostró la potencia de las clases .NET. Estos métodos ejemplifican la versatilidad de PowerShell, y para aquellos que buscan profundizar su experiencia, explorar temas relacionados como trabajar con rutas de archivo completas y extraer extensiones de archivo es una progresión lógica, desbloqueando el potencial completo de PowerShell para tareas de scripting y automatización del sistema.

¿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