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

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 adiciona1
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 utilizandoSubstring
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 objetoFileInfo
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 propriedadeName
do objetoFileInfo
.
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.