2010-10-14 6 views
9

Je suis en train d'écrire un script pour apporter des modifications aux autorisations de dossiers. Avant cela, je ferais quelques vérifications pour m'assurer que je travaille dans le bon répertoire. Mon problème est de savoir comment vérifier si quatre sous-dossiers (Admin, Workspace, Com, & Data) existent avant que le script ne progresse. Je suppose que j'utiliserais Test-Path sur chaque répertoire.PowerShell: Comment vérifier plusieurs conditions (existence d'un dossier)

Répondre

14

Quel est le problème avec ce qui suit?

if ((Test-Path $path1) -and (Test-Path $path2)) { 

} 
2

Conseil:

Souvenez-vous de spécifier -LiteralPath - arrête toute erreur d'interprétation. J'ai "été là" (pour ainsi dire) avec celui-ci, en passant des heures de code de débogage. Test-Path peut vérifier plusieurs chemins à la fois.

0

Comme ceci:

Test-Path "c:\path1","c:\path2" 

La sortie sera un tableau de Vrai/Faux pour chaque chemin correspondant.

Cela peut être particulièrement utile si vous avez beaucoup de fichiers/dossiers à vérifier.

Vérifiez si tous les chemins sont existe:

if ((Test-Path $arraywithpaths) -notcontains $false) {...} 

manière identique pour la non-existence:

if ((Test-Path $arraywithpaths) -contains $false) {...} 
Questions connexes