Cómo eliminar la ruta y la extensión del nombre de archivo en PowerShell
-
Usa la propiedad
BaseNamepara eliminar la ruta y extensión del nombre del archivo en PowerShell -
Usa la clase
System.IO.Pathpara 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.txtdel 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
