Cómo obtener la extensión del archivo usando PowerShell
-
Obtenga la extensión del archivo usando
Split-Path
en PowerShell -
Obtenga la extensión del archivo usando el cmdlet
Get-ChildItem
en PowerShell -
Obtenga la extensión del archivo usando
System.IO.Path
en PowerShell -
Obtenga la extensión del archivo usando
System.IO.FileInfo
en PowerShell - Conclusión

Por lo general, se requiere extraer un nombre de archivo de la ruta completa mientras se trabaja en sus scripts de PowerShell. Por ejemplo, su script recibió una ruta de archivo completa y solo desea obtener la extensión del archivo.
Esta guía completa profundiza en diversas metodologías para extraer extensiones de archivo utilizando PowerShell, una tarea fundamental pero crucial en numerosos escenarios de scripting. Cada sección del artículo presenta un enfoque diferente, desde la simplicidad de Split-Path
hasta el uso más sofisticado del marco de .NET
y la clase System.IO.FileInfo
.
Obtenga la extensión del archivo usando Split-Path
en PowerShell
El objetivo principal de usar Split-Path -Leaf
en este contexto es aislar el nombre del archivo y su extensión de una ruta dada. Este método es particularmente efectivo cuando se trabaja solo con el nombre del archivo o una ruta relativa.
Una vez que se obtiene el nombre del archivo, la extensión se puede extraer fácilmente utilizando métodos de división de cadenas.
Código de ejemplo:
# Define the file path
$filePath = "sample.txt"
# Extract the file extension
$extension = (Split-Path -Path $filePath -Leaf).Split(".")[1]
# Output the extension
Write-Output $extension
En este script, comenzamos definiendo un nombre de archivo $filePath
. El comando Split-Path -Path $filePath -Leaf
aísla el nombre del archivo (sample.txt
).
Luego dividimos esta cadena en el punto, lo que resulta en un array donde el primer elemento es el nombre del archivo sin la extensión (sample
), y el segundo elemento es la extensión (txt
). Al acceder al segundo elemento de este array con [1]
, obtenemos la extensión.
Finalmente, se utiliza Write-Output
para mostrar la extensión.
Salida:
Obtenga la extensión del archivo usando el cmdlet Get-ChildItem
en PowerShell
El comando Get-ChildItem
obtiene los elementos en una o más ubicaciones especificadas. Por ejemplo, si el objeto es un contenedor, obtiene las cosas dentro del contenedor mencionado, conocidas como elementos secundarios.
Una ubicación puede ser un sistema de archivos, como un directorio, o un sitio expuesto por un proveedor diferente de Windows PowerShell. El comando Get-ChildItem
obtiene los directorios, subdirectorios y archivos en una unidad del sistema de archivos.
Dado que el cmdlet Get-ChildItem
se ocupa de archivos, tiene un atributo de propiedad de PowerShell que podemos exportar para obtener la extensión del archivo consultado. A diferencia del cmdlet Split-Path
, este método puede enviar la extensión correctamente, incluso si hay caracteres de punto en el nombre del archivo.
Código de ejemplo:
Get-ChildItem 'sample.txt' | Select-Object Extension
En este script, Get-ChildItem 'sample.txt'
recupera el objeto de archivo para sample.txt
. El cmdlet Get-ChildItem
se utiliza típicamente para listar elementos en un directorio, pero cuando se proporciona un nombre de archivo específico, devuelve el objeto de archivo para ese archivo.
Este objeto incluye varias propiedades, una de las cuales es la extensión del archivo.
La salida de Get-ChildItem
se envía luego a Select-Object Extension
. Este cmdlet filtra las propiedades del objeto de archivo, generando solo la propiedad Extension
.
Salida:
Obtenga la extensión del archivo usando System.IO.Path
en PowerShell
El siguiente enfoque se basa en las clases del marco de .NET
. Aunque se desaconseja comúnmente usar clases del marco de .NET
en scripts de PowerShell, especialmente si hay un comando nativo de PowerShell disponible, puede ser apropiado para este caso de uso específico.
En el ejemplo a continuación, si se le da el nombre del archivo, usaríamos el método estático GetExtension
de la clase System.IO.Path
:
Código de ejemplo:
[System.IO.Path]::GetExtension("sample.txt")
En el ejemplo proporcionado, se utiliza la clase .NET
[System.IO.Path]
, y se llama a su método estático GetExtension()
. Pasamos "sample.txt"
como argumento al método.
Este método analiza la cadena y extrae la subcadena que representa la extensión del archivo. La belleza de este método radica en su simplicidad y enfoque directo para manejar nombres y rutas de archivos, ya que no requiere que el archivo exista en el sistema de archivos.
Salida:
Obtenga la extensión del archivo usando System.IO.FileInfo
en PowerShell
El uso principal de System.IO.FileInfo
en este contexto es obtener información detallada sobre un archivo específico, como su extensión. Este método es particularmente útil en scripts donde los metadatos del archivo son cruciales y hay una necesidad de más que solo un manejo básico de archivos.
Código de ejemplo:
# Create a FileInfo object for the specified file
$FileInfo = New-Object System.IO.FileInfo('sample.txt')
# Access the extension property of the FileInfo object
$Extension = $FileInfo.Extension
# Print the extension
Write-Output $Extension
En este script, iniciamos el proceso creando un objeto System.IO.FileInfo
para sample.txt
. Este objeto encapsula varios detalles sobre el archivo, incluyendo su nombre, directorio, tamaño y, lo que es importante, su extensión.
Al acceder a la propiedad .Extension
del objeto FileInfo
, extraemos la extensión del archivo. Esta propiedad devuelve la extensión como una cadena, completa con el punto inicial (por ejemplo, .txt
).
Salida:
Conclusión
Navegar a través de las sutilezas de las extensiones de archivo en PowerShell revela un espectro de técnicas, cada una con sus ventajas y aplicaciones únicas. Esta exploración nos ha llevado desde el uso directo de Split-Path
y Get-ChildItem
, ideal para recuperaciones simples y rápidas, hasta los niveles más profundos del marco de .NET
con System.IO.Path
y System.IO.FileInfo
, donde se logra un equilibrio entre complejidad y capacidad de manera elegante.
Ya sea que esté automatizando una tarea de rutina, realizando operaciones masivas de archivos o desarrollando scripts sofisticados para la gestión del sistema, comprender estos métodos enriquece su conjunto de herramientas de PowerShell. Los diversos enfoques discutidos aquí subrayan la adaptabilidad y robustez de PowerShell, empoderando tanto a los scriptores novatos como a los experimentados para personalizar sus soluciones con precisión y eficiencia.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInArtí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