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

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:
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 porGet-ChildItem
, extrayendo solo el nombre del archivo sin su extensión.
Salida:
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:
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:
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.
Artículo relacionado - PowerShell File
- Cómo crear un archivo de texto usando Windows PowerShell
- Cómo obtener la versión del archivo en PowerShell
- Cómo subir archivos con FTP en PowerShell
- Cómo agregar datos a un archivo usando PowerShell
- Cómo almacenar el contenido de un archivo de texto en una variable usando PowerShell
- Consulta de la última hora de escritura del archivo en PowerShell