Obtenga la extensión de archivo usando PowerShell

  1. Obtenga la extensión de archivo usando Split-Path en PowerShell
  2. Obtenga la extensión de archivo usando el cmdlet Get-ChildItem en PowerShell
  3. Obtenga la extensión de archivo usando .NET Framework en PowerShell
Obtenga la extensión de archivo usando PowerShell

Por lo general, se requiere que se extraiga un nombre de archivo de la ruta completa mientras se trabaja en los scripts de PowerShell. Por ejemplo, su secuencia de comandos recibió una ruta de archivo completa y solo desea obtener la extensión del archivo.

Este artículo discutirá varios métodos de extensión de archivos usando secuencias de comandos de PowerShell.

Obtenga la extensión de archivo usando Split-Path en PowerShell

Para separar la extensión del nombre del archivo, podemos usar el parámetro -Leaf para indicar de dónde extraeremos la extensión. La hoja es el último elemento o parte de un camino.

$filePath = "C:\temp\subfolder\File1.txt";
$extension = (Split-Path -Path $filePath -Leaf).Split(".")[1];
Write-Output $extension

Producción :

txt

Puede notar que en nuestro fragmento de código, llamamos a la función Dividir () que dividirá la ruta proporcionada.

Usamos el punto . como separador porque el nombre del archivo y la extensión están divididos por un punto separador. Luego llamamos a la matriz [1] el valor de extensión almacenado.

Intente llamar a la matriz [0], y obtendrá el nombre de archivo de la ruta.

Código de ejemplo:

(Split-Path -Path $filePath -Leaf).Split(".")[0];

Producción :

File1

Dado que usamos el carácter de punto como nuestro separador, este método solo funcionará si sus nombres de archivo no contienen ningún otro punto. Recuerde que un carácter de punto puede estar en un nombre de archivo.

Obtenga la extensión de archivo usando el cmdlet Get-ChildItem en PowerShell

El comando Get-ChildItem obtiene los elementos en una o más ubicaciones específicas. Por ejemplo, si el objeto es un contenedor, obtiene las cosas dentro de dicho contenedor, conocidas como elementos secundarios.

Una ubicación puede ser un sistema de archivos, como un directorio, o un sitio expuesto por un proveedor de Windows PowerShell diferente. El comando Get-ChildItem obtiene los directorios, subdirectorios y archivos en una unidad de sistema de archivos.

Dado que el cmdlet Get-ChildItem trata con 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 aunque haya puntos en el nombre del archivo.

Código de ejemplo:

Get-ChildItem 'C:\temp\file.1.txt' | Select Extension

Producción :

Extension
---------
.txt

Obtenga la extensión de archivo usando .NET Framework en PowerShell

El siguiente enfoque se basa en las clases del marco .NET. Aunque comúnmente se desaconseja usar clases de marco .NET en scripts de PowerShell, especialmente si hay disponible un comando nativo de PowerShell, puede ser apropiado para este caso de uso específico.

En el siguiente ejemplo, si se le da el nombre del archivo, usaríamos métodos estáticos GetExtension de la clase System.IO.Path:

Código de ejemplo:

[System.IO.Path]::GetExtension("File1.txt")

Producción :

.txt

También podemos usar el método estático GetFileNameWithoutExtension si queremos obtener el nombre del archivo.

Código de ejemplo:

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

Producción :

File1
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell File