Come verificare se una cartella esiste in PowerShell

  1. Usa il cmdlet Test-Path per controllare se una cartella esiste in PowerShell
  2. Usa il System.IO.Directory per controllare se una cartella esiste in PowerShell
  3. Usa il cmdlet Get-Item per controllare se una cartella esiste in PowerShell
  4. Conclusione
Come verificare se una cartella esiste in PowerShell

PowerShell è uno strumento potente che può eseguire diverse operazioni su file e cartelle. Ti consente di creare, copiare, spostare, rinominare, eliminare e visualizzare file e cartelle nel sistema.

La gestione di file e cartelle è una funzionalità di PowerShell, che consente agli utenti di non solo manipolare queste entità ma anche verificare la loro esistenza nel sistema. In questo tutorial, esploreremo vari metodi per controllare l’esistenza di una cartella nel tuo sistema utilizzando PowerShell.

Usa il cmdlet Test-Path per controllare se una cartella esiste in PowerShell

Il cmdlet Test-Path determina se tutti gli elementi del percorso esistono o meno in PowerShell. Restituisce un valore booleano, True se tutti gli elementi esistono, e False se ce ne sono mancanti.

Sintassi:

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

Parametro:

  • -Path: Questo parametro indica il percorso della cartella o del file di cui si desidera verificare l’esistenza. In questo caso, è impostato su "C:\Path\to\Folder", indicando che vuoi controllare se la cartella situata a quel percorso esiste.

Ad esempio, il seguente comando verifica se tutti gli elementi del percorso C:\New\complex esistono o meno.

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

Output:

True

Significa che la cartella complex esiste nella directory C:\New.

Il seguente comando verifica se la cartella Documents esiste nella directory C:\New.

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

Output:

False

Pertanto, la cartella Documents non è presente nella directory C:\New.

Se desideri restituire informazioni dettagliate invece di True/False, puoi usare l’istruzione if in questo modo.

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

In questo codice, utilizziamo il cmdlet Test-Path per controllare se una cartella, "C:\New\Documents", esiste nel sistema. Se la cartella esiste, stampa "La cartella fornita esiste" utilizzando Write-Host.

Se la cartella non esiste, stampa "La cartella fornita non esiste" nella console.

Output:

The given folder does not exist.

Come si scopre, la cartella "C:\New\Documents" non esiste nel sistema, portando il cmdlet Test-Path a restituire False. Il nostro codice attiva il blocco else, visualizzando il messaggio "La cartella fornita non esiste." sulla console.

Questo output segnala accuratamente che la cartella specificata non è stata trovata al percorso fornito all’interno del sistema.

Usa il System.IO.Directory per controllare se una cartella esiste in PowerShell

La classe System.IO.Directory del Framework .NET fornisce metodi statici per creare, spostare, eliminare ed enumerare attraverso directory e sottodirectory. Puoi utilizzare il suo metodo Exists() per vedere se il percorso fornito si riferisce a una directory che esiste già nel sistema.

Restituisce anche True se il percorso esiste e False se non esiste.

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

Output:

True

Il [System.IO.Directory]::Exists("C:\New\complex") non ha parametri utilizzati. Invece, sta semplicemente chiamando un metodo per controllare se una cartella esiste in PowerShell.

Ora, verifichiamo se la cartella Documents esiste nella directory C:\New.

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

Nel comando sopra, stiamo usando il Framework .NET chiamato "System.IO.Directory" per controllare se una cartella esiste. Questo strumento ha una funzionalità chiamata "Exists()" che ci aiuta in questo compito.

Gli diciamo di controllare la posizione "C:\New\Documents" e dirci se c’è una cartella lì. Se trova la cartella, restituirà True, ma se la cartella non esiste, dirà False.

Output:

False

L’output è "False". Ciò significa che il System.IO.Directory::Exists() indica che la cartella "C:\New\Documents" non esiste al percorso specificato.

Usa il cmdlet Get-Item per controllare se una cartella esiste in PowerShell

Il Get-Item ottiene l’elemento al percorso specificato. Se il percorso esiste nel sistema, stampa il Mode, LastWriteTime, Length e Name della directory.

Get-Item C:\Users\Public

In questo comando, stiamo recuperando informazioni sulla cartella Public situata in C:\Users\Public. Quando eseguiamo questo comando in PowerShell, la console visualizzerà vari dettagli riguardanti la cartella.

Output:

    Directory: C:\Users


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

Se il percorso specificato non esiste, riceverai un messaggio di errore che dice che non esiste, come nel seguente esempio.

Get-Item C:\Users\Publics

Output:

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

Conclusione

Questi approcci forniscono modi distinti per controllare la presenza di cartelle in PowerShell e puoi modificarli per soddisfare i tuoi requisiti specifici. Queste tecniche sono applicabili non solo alle cartelle, ma possono anche essere utilizzate per verificare l’esistenza di file all’interno del tuo sistema.

Speriamo che questo articolo ti abbia dato un’idea di come controllare se una cartella esiste in PowerShell.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
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

Articolo correlato - PowerShell Folder