Obtenga la extensión de archivo usando PowerShell
-
Obtenga la extensión de archivo usando
Split-Path
en PowerShell -
Obtenga la extensión de archivo usando el cmdlet
Get-ChildItem
en PowerShell -
Obtenga la extensión de archivo usando
.NET
Framework en 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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInArtículo relacionado - PowerShell File
- Almacene el contenido del archivo de texto en variable usando PowerShell
- Consulta de la última hora de escritura del archivo en PowerShell
- Desbloquear archivos usando PowerShell
- Dividir archivo grande en PowerShell
- Leer archivo CSV línea por línea en PowerShell
- Buscar archivos con extensión en PowerShell