Como obter a extensão do arquivo usando PowerShell
-
Obter a Extensão do Arquivo Usando
Split-Path
no PowerShell -
Obter a Extensão do Arquivo Usando o Cmdlet
Get-ChildItem
no PowerShell -
Obter a Extensão do Arquivo Usando
System.IO.Path
no PowerShell -
Obter a Extensão do Arquivo Usando
System.IO.FileInfo
no PowerShell - Conclusão

É geralmente necessário ter um nome de arquivo extraído do caminho completo ao trabalhar com seus scripts do PowerShell. Por exemplo, seu script recebeu um caminho de arquivo completo e você deseja apenas obter a extensão do arquivo.
Este guia abrangente analisa várias metodologias para extrair extensões de arquivo usando PowerShell, uma tarefa fundamental, mas crucial em numerosos cenários de script. Cada seção do artigo introduz uma abordagem diferente, variando desde a simplicidade do Split-Path
até o uso mais sofisticado do framework .NET
e da classe System.IO.FileInfo
.
Obter a Extensão do Arquivo Usando Split-Path
no PowerShell
O objetivo principal de usar Split-Path -Leaf
neste contexto é isolar o nome do arquivo e sua extensão de um caminho dado. Este método é particularmente eficaz quando você está trabalhando apenas com o nome do arquivo ou um caminho relativo.
Uma vez que o nome do arquivo é obtido, a extensão pode ser facilmente extraída usando métodos de divisão de string.
Código de Exemplo:
# 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
Neste script, começamos definindo um nome de arquivo $filePath
. O comando Split-Path -Path $filePath -Leaf
isola o nome do arquivo (sample.txt
).
Em seguida, dividimos essa string no ponto, resultando em um array onde o primeiro elemento é o nome do arquivo sem a extensão (sample
), e o segundo elemento é a extensão (txt
). Ao acessar o segundo elemento desse array com [1]
, obtemos a extensão.
Finalmente, Write-Output
é usado para exibir a extensão.
Saída:
Obter a Extensão do Arquivo Usando o Cmdlet Get-ChildItem
no PowerShell
O comando Get-ChildItem
obtém os itens em um ou mais locais especificados. Por exemplo, se o objeto for um contêiner, ele obtém as coisas dentro do referido contêiner, conhecidas como itens filhos.
Um local pode ser um sistema de arquivos, como um diretório, ou um site exposto por um fornecedor diferente do Windows PowerShell. O comando Get-ChildItem
obtém os diretórios, subdiretórios e arquivos em uma unidade de sistema de arquivos.
Como o cmdlet Get-ChildItem
lida com arquivos, ele possui um atributo de propriedade PowerShell que podemos exportar para obter a extensão do arquivo consultado. Ao contrário do cmdlet Split-Path
, esse método pode enviar a extensão corretamente, mesmo que haja caracteres de ponto no nome do arquivo.
Código de Exemplo:
Get-ChildItem 'sample.txt' | Select-Object Extension
Neste script, Get-ChildItem 'sample.txt'
recupera o objeto de arquivo para sample.txt
. O cmdlet Get-ChildItem
é tipicamente usado para listar itens em um diretório, mas quando fornecido com um nome de arquivo específico, ele retorna o objeto de arquivo para esse arquivo.
Este objeto inclui várias propriedades, uma das quais é a extensão do arquivo.
A saída do Get-ChildItem
é então direcionada para Select-Object Extension
. Esse cmdlet filtra as propriedades do objeto de arquivo, retornando apenas a propriedade Extension
.
Saída:
Obter a Extensão do Arquivo Usando System.IO.Path
no PowerShell
A seguinte abordagem é baseada nas classes do framework .NET
. Embora seja comumente desencorajado usar classes do framework .NET
em scripts do PowerShell, especialmente se um comando nativo do PowerShell estiver disponível, pode ser apropriado para este caso de uso específico.
No exemplo abaixo, se você receber o nome do arquivo, usaríamos os métodos estáticos GetExtension
da classe System.IO.Path
:
Código de Exemplo:
[System.IO.Path]::GetExtension("sample.txt")
No exemplo fornecido, a classe .NET
[System.IO.Path]
é usada, e seu método estático GetExtension()
é chamado. Passamos "sample.txt"
como argumento para o método.
Esse método analisa a string e extrai a substring que representa a extensão do arquivo. A beleza deste método reside em sua simplicidade e abordagem direta para lidar com nomes e caminhos de arquivos, uma vez que não requer que o arquivo exista no sistema de arquivos.
Saída:
Obter a Extensão do Arquivo Usando System.IO.FileInfo
no PowerShell
O uso principal de System.IO.FileInfo
neste contexto é obter informações detalhadas sobre um arquivo específico, como sua extensão. Este método é particularmente útil em scripts onde os metadados do arquivo são cruciais e há necessidade de mais do que apenas manipulação básica de arquivos.
Código de Exemplo:
# 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
Neste script, iniciamos o processo criando um objeto System.IO.FileInfo
para sample.txt
. Este objeto encapsula vários detalhes sobre o arquivo, incluindo seu nome, diretório, tamanho e, o mais importante, sua extensão.
Ao acessar a propriedade .Extension
do objeto FileInfo
, extraímos a extensão do arquivo. Esta propriedade retorna a extensão como uma string, completa com o período inicial (por exemplo, .txt
).
Saída:
Conclusão
Navegar pelas nuances das extensões de arquivo no PowerShell revela um espectro de técnicas, cada uma com suas vantagens e aplicações únicas. Esta exploração nos levou desde o uso direto de Split-Path
e Get-ChildItem
, ideal para recuperações simples e rápidas, até os reinos mais profundos do framework .NET
com System.IO.Path
e System.IO.FileInfo
, onde um equilíbrio entre complexidade e capacidade é elegantemente alcançado.
Seja você automatizando uma tarefa rotineira, realizando operações em arquivos em massa ou desenvolvendo scripts sofisticados para gerenciamento de sistemas, entender esses métodos enriquece seu kit de ferramentas do PowerShell. As diversas abordagens discutidas aqui sublinham a adaptabilidade e robustez do PowerShell, capacitando tanto novatos quanto scripters experientes a personalizar suas soluções com precisão e eficiência.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInArtigo relacionado - PowerShell File
- Como Armazenar o Conteúdo de um Arquivo de Texto em Variável Usando PowerShell
- Como criar um arquivo de texto usando o Windows PowerShell
- Como Desbloquear Arquivos Usando PowerShell
- Como encontrar arquivos com extensão no PowerShell
- Como extrair o nome do arquivo de um caminho usando PowerShell
- Como Fazer o Upload de Arquivos com FTP no PowerShell