HOWTO · PowerShell

Como Verificar se a Pasta Existe no PowerShell

Este tutorial irá ensinar você a verificar se uma pasta existe ou não no PowerShell.

O PowerShell é uma ferramenta poderosa que pode realizar diferentes operações com arquivos e pastas. Ele permite que você crie, copie, mova, renomeie, exclua e visualize arquivos e pastas no sistema.

O gerenciamento de arquivos e pastas é um recurso do PowerShell, permitindo que os usuários não apenas manipulem essas entidades, mas também verifiquem sua existência no sistema. Neste tutorial, vamos explorar vários métodos para verificar a existência de uma pasta no seu sistema usando o PowerShell.

Use o cmdlet Test-Path para verificar se uma pasta existe no PowerShell

O cmdlet Test-Path determina se todos os elementos do caminho existem ou não no PowerShell. Ele retorna um valor booleano, True se todos os elementos existirem e False se algum estiver ausente.

Sintaxe:

Test-Path -Path "C:\Path\to\Folder"

Parâmetro:

  • -Path: Este parâmetro indica o caminho para a pasta ou arquivo que você deseja verificar a existência. Neste caso, está definido como "C:\Path\to\Folder", indicando que você deseja verificar se a pasta localizada nesse caminho existe.

Por exemplo, o seguinte comando verifica se todos os elementos do caminho C:\New\complex existem ou não.

Test-Path -Path "C:\New\complex"

Saída:

True

Isso significa que a pasta complex existe no diretório C:\New.

Este seguinte comando verifica se a pasta Documents existe no diretório C:\New.

Test-Path -Path "C:\New\Documents"

Saída:

False

Portanto, a pasta Documents não está presente no diretório C:\New.

Se você quiser retornar informações detalhadas em vez de True/False, pode usar a declaração if assim.

if (Test-Path -Path "C:\New\Documents") {
    Write-Host "The given folder exists."
}
else {
    Write-Host "The given folder does not exist."
}

Neste código, usamos o cmdlet Test-Path para verificar se uma pasta, "C:\New\Documents", existe no sistema. Se a pasta existir, imprime "A pasta informada existe" usando Write-Host.

Se a pasta não existir, imprime "A pasta informada não existe" no console.

Saída:

The given folder does not exist.

Aparentemente, a pasta "C:\New\Documents" não existe no sistema, levando o cmdlet Test-Path a retornar False. Nosso código ativa o bloco else, mostrando a mensagem "A pasta informada não existe." no console.

Esta saída significa com precisão que a pasta especificada não foi localizada no caminho fornecido dentro do sistema.

Use a classe System.IO.Directory para verificar se uma pasta existe no PowerShell

A classe System.IO.Directory da estrutura .NET fornece métodos estáticos para criar, mover, excluir e enumerar diretórios e subdiretórios. Você pode usar seu método Exists() para ver se o caminho fornecido se refere a um diretório que já existe no sistema.

Ele também retorna True se o caminho existir e False se não existir.

[System.IO.Directory]::Exists("C:\New\complex")

Saída:

True

O [System.IO.Directory]::Exists("C:\New\complex") não tem parâmetro sendo usado. Em vez disso, está chamando diretamente um método para verificar se uma pasta existe no PowerShell.

Agora, vamos verificar se a pasta Documents existe no diretório C:\New.

[System.IO.Directory]::Exists("C:\New\Documents")

No comando acima, estamos usando a estrutura .NET chamada "System.IO.Directory" para verificar se uma pasta existe. Esta ferramenta tem um recurso chamado "Exists()" que nos ajuda com essa tarefa.

Dizemos a ela para olhar na localização "C:\New\Documents" e nos informar se há uma pasta lá. Se encontrar a pasta, retornará True, mas se a pasta não existir, dirá False.

Saída:

False

A saída é "False". Isso significa que o System.IO.Directory::Exists() indica que a pasta "C:\New\Documents" não existe no caminho especificado.

Use o cmdlet Get-Item para verificar se uma pasta existe no PowerShell

O Get-Item obtém o item no caminho dado. Se o caminho existir no sistema, imprime o Mode, LastWriteTime, Length e Name do diretório.

Get-Item C:\Users\Public

Neste comando, estamos recuperando informações sobre a pasta Public situada em C:\Users\Public. Quando executamos este comando no PowerShell, o console exibirá vários detalhes sobre a pasta.

Saída:

    Directory: C:\Users


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-r---        10/15/2023   6:35 PM                Public

Se o caminho especificado não existir, você receberá uma mensagem de erro dizendo que não existe, como no seguinte exemplo.

Get-Item C:\Users\Publics

Saída:

Get-Item : Cannot find path 'C:\Users\Publics' because it does not exist.
At line:1 char:1
+ Get-Item C:\Users\Publics
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Publics:String) [Get-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand

Conclusão

Essas abordagens fornecem maneiras distintas de verificar a presença de pastas no PowerShell, e você pode modificá-las para atender às suas necessidades específicas. Essas técnicas não são apenas aplicáveis a pastas, mas também podem ser usadas para verificar a existência de arquivos dentro do seu sistema.

Esperamos que este artigo tenha lhe dado uma ideia de como verificar se uma pasta existe no PowerShell.