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

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.