Como extrair o nome do arquivo de um caminho usando PowerShell

  1. Use o Cmdlet Split-Path para Extrair o Nome do Arquivo de um Caminho no PowerShell
  2. Use os Métodos da Classe Path do .NET para Extrair o Nome do Arquivo de um Caminho no PowerShell
  3. Use os Cmdlets Get-Item e Get-ChildItem para Extrair o Nome do Arquivo de um Caminho no PowerShell
  4. Use Expressões Regulares para Extrair o Nome do Arquivo de um Caminho no PowerShell
  5. Use Manipulação de Strings para Extrair o Nome do Arquivo de um Caminho no PowerShell
  6. Use a Classe System.IO.FileInfo para Extrair o Nome do Arquivo de um Caminho no PowerShell
  7. Conclusão
Como extrair o nome do arquivo de um caminho usando PowerShell

Um caminho de arquivo indica a localização do arquivo no sistema. Ao trabalhar com arquivos no PowerShell, você pode precisar obter apenas o nome do arquivo de um caminho.

Existem várias maneiras de obter o caminho dos arquivos no PowerShell. Este tutorial irá ensiná-lo a extrair o nome do arquivo de um caminho com o PowerShell.

Use o Cmdlet Split-Path para Extrair o Nome do Arquivo de um Caminho no PowerShell

No PowerShell, o cmdlet Split-Path é uma ferramenta útil para isolar segmentos específicos de um caminho dado. Seja a pasta pai, subpasta, nome do arquivo ou apenas a extensão do arquivo, o Split-Path permite direcionar e exibir esses elementos.

Extrair o Nome do Arquivo Com Extensão

Para capturar o nome do arquivo junto com sua extensão a partir de um caminho, você pode empregar o comando Split-Path com o parâmetro -Leaf:

Split-Path C:\pc\test_folder\hello.txt -Leaf

Saída:

hello.txt

Obter o Nome do Arquivo Sem Extensão

Nos casos em que você precisa do nome do arquivo sem a extensão, o parâmetro -LeafBase é útil. No entanto, é importante notar que este parâmetro está disponível nas versões 6.0 e posteriores do PowerShell:

Split-Path C:\pc\test_folder\hello.txt -LeafBase

Saída:

hello

Use os Métodos da Classe Path do .NET para Extrair o Nome do Arquivo de um Caminho no PowerShell

No .NET, a classe Path oferece métodos úteis para extrair facilmente o nome do arquivo e a extensão de um caminho especificado. Vamos explorar essas capacidades com exemplos.

Extrair Nome do Arquivo Com Extensão Usando GetFileName

O método GetFileName da classe Path recupera o nome do arquivo juntamente com sua extensão de um caminho dado. Vamos demonstrar isso com o caminho C:\pc\test_folder\hello.txt:

[System.IO.Path]::GetFileName('C:\pc\test_folder\hello.txt')

Saída:

hello.txt

Obter Nome do Arquivo Sem Extensão Usando GetFileNameWithoutExtension

Para extrair apenas o nome do arquivo sem a extensão, você pode usar o método GetFileNameWithoutExtension. Isso é particularmente útil quando você precisa do nome do arquivo em si, excluindo o tipo de arquivo:

[System.IO.Path]::GetFileNameWithoutExtension('C:\pc\test_folder\hello.txt')

Saída:

hello

Use os Cmdlets Get-Item e Get-ChildItem para Extrair o Nome do Arquivo de um Caminho no PowerShell

No PowerShell, os cmdlets Get-Item e Get-ChildItem são ferramentas essenciais para trabalhar com arquivos e diretórios, permitindo que você extraia informações específicas sobre o item em uma determinada localização.

Vamos ver como usar esses cmdlets para extrair o nome do arquivo de um caminho dado, incluindo variações para obter o nome do arquivo com ou sem a extensão.

Extrair Nome do Arquivo Com Extensão Usando Get-Item

O cmdlet Get-Item recupera informações detalhadas sobre o item especificado, incluindo seu diretório, modo, último tempo de escrita, comprimento e nome. Para extrair o nome do arquivo com a extensão, você pode usar a propriedade .Name em conjunto com Get-Item.

Vamos demonstrar isso com um caminho específico, C:\pc\test_folder\hello.txt:

(Get-Item C:\pc\test_folder\hello.txt).Name

Saída:

hello.txt

Obter Nome do Arquivo Sem Extensão Usando Get-Item

Se você precisar extrair apenas o nome do arquivo sem a extensão, pode utilizar a propriedade .BaseName em combinação com Get-Item. Isso permite que você isole apenas o nome do arquivo do caminho fornecido:

(Get-Item C:\pc\test_folder\hello.txt).BaseName

Saída:

hello

Aplicar o Método Com Get-ChildItem

Essa abordagem também é aplicável ao usar o cmdlet Get-ChildItem, que recupera informações sobre os itens em uma localização especificada. Aqui está como você pode usá-lo para extrair o nome do arquivo com ou sem a extensão:

(Get-ChildItem C:\pc\test_folder\hello.txt).Name
(Get-ChildItem C:\pc\test_folder\hello.txt).BaseName

Saída:

hello.txt
hello

Use Expressões Regulares para Extrair o Nome do Arquivo de um Caminho no PowerShell

Expressões regulares também podem ser utilizadas para extrair o nome do arquivo de um caminho no PowerShell. A classe Regex no .NET fornece ferramentas poderosas para correspondência e manipulação de padrões.

Vamos ver como isso funciona:

# Define the path
$path = "C:\pc\test_folder\hello.txt"

# Use regular expression to extract the filename
$filename = [System.Text.RegularExpressions.Regex]::Match($path, '\\([^\\]+)$').Groups[1].Value
$filename

Saída:

hello.txt

Neste exemplo, utilizamos uma expressão regular para capturar o texto após a última barra invertida, que representa o nome do arquivo junto com sua extensão.

A expressão regular '\\([^\\]+)$' pode ser decomposta da seguinte forma:

  • \\: Corresponde a uma barra invertida no caminho.
  • ([^\\]+): Captura um ou mais caracteres que não são uma barra invertida (representando o nome do arquivo com extensão) dentro de um grupo de captura.
  • $: Especifica que a correspondência deve ocorrer no final da string.

Usando o método Match da classe Regex, aplicamos a expressão regular ao caminho.

A correspondência resultante contém o nome do arquivo com sua extensão. Acessamos isso através de Groups[1].Value para extrair o nome do arquivo desejado.

Use Manipulação de Strings para Extrair o Nome do Arquivo de um Caminho no PowerShell

Técnicas de manipulação de strings também podem ser empregadas para extrair o nome do arquivo de um caminho. Por exemplo, você pode usar o método LastIndexOf para encontrar a última ocorrência da barra invertida e extrair o nome do arquivo conforme necessário.

# Define the path
$path = "C:\pc\test_folder\hello.txt"

# Find the index of the last backslash
$lastBackslashIndex = $path.LastIndexOf("\") + 1

# Extract the filename
$filename = $path.Substring($lastBackslashIndex)
$filename

Saída:

hello.txt

Aqui, utilizamos o método LastIndexOf para determinar o índice da última ocorrência de uma barra invertida (\) no caminho, identificando essencialmente a posição onde o nome do arquivo começa.

  • $lastBackslashIndex = $path.LastIndexOf("\") + 1: Esta linha calcula o índice da última barra invertida e adiciona 1 para garantir que começamos a extrair caracteres após a barra invertida.

Em seguida, utilizamos o método Substring para extrair o nome do arquivo, começando a partir do índice após a última barra invertida e continuando até o final da string.

  • $filename = $path.Substring($lastBackslashIndex): Aqui, extraímos o nome do arquivo utilizando Substring com o índice calculado.

Use a Classe System.IO.FileInfo para Extrair o Nome do Arquivo de um Caminho no PowerShell

A classe System.IO.FileInfo fornece propriedades para acessar informações do arquivo, incluindo o nome do arquivo. Podemos criar um objeto FileInfo e então acessar a propriedade Name para obter o nome do arquivo.

# Define the path
$path = "C:\pc\test_folder\hello.txt"

# Create a FileInfo object
$fileInfo = New-Object System.IO.FileInfo $path

# Extract the filename
$filename = $fileInfo.Name
$filename

Saída:

hello.txt

Neste exemplo, criamos um objeto FileInfo usando New-Object e a classe System.IO.FileInfo, permitindo-nos acessar propriedades e métodos relacionados ao arquivo.

  • $fileInfo = New-Object System.IO.FileInfo $path: Esta linha de código constrói um objeto FileInfo com base no caminho fornecido.

Em seguida, utilizamos a propriedade Name do objeto FileInfo para extrair o nome do arquivo.

  • $filename = $fileInfo.Name: Aqui, obtemos o nome do arquivo acessando a propriedade Name do objeto FileInfo.

Conclusão

Neste tutorial, exploramos vários métodos para extrair nomes de arquivos de caminhos no PowerShell. Desde o uso de cmdlets embutidos como Split-Path até a aplicação de expressões regulares e manipulação de strings, você possui uma gama de opções para escolher com base em seus requisitos específicos.

Entender essas técnicas aprimorará sua proficiência em lidar com caminhos de arquivos e extrair informações essenciais de arquivos no PowerShell. Seja você preferindo a simplicidade dos cmdlets embutidos ou a versatilidade das expressões regulares, o PowerShell oferece um conjunto robusto de ferramentas para manipulação eficaz de arquivos.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artigo relacionado - PowerShell File