2017-04-28 3 views
4

J'ai le problème suivant, j'ai besoin de créer un script qui compare si le répertoire existe et s'il n'existe pas, créez-le. Dans le shell Linux, j'utilise le paramètre -F pour vérifier si le répertoire existe. Comment puis-je tester dans PowerShell?Comment comparer si un dossier existe et s'il n'existe pas, créez-le

Dans shell Linux:

DIR=FOLDER 

if [ -f $DIR ] 
then 
    echo "FOLDER EXIST"; 
else 
    echo "FOLDER NOT EXIST"; 
    mkdir $DIR 
fi 

Comment puis-je faire cette comparaison dans Windows PowerShell?

$DIRE = "C:\DIRETORIO" 

if (-e $DIRE) { 
    echo "Directory Exists" 
} else { 
    md DIRETORIO 
} 
+3

'-e $ DIRE' ->' Test-Path $ DIRE' –

+0

Merci pour l'aide! –

Répondre

7

Vous pouvez également utiliser l'applet de commande New-Item avec le paramètre force, vous ne devez même pas vérifier si le répertoire existe:

New-Item -Path C:\tmp\test\abc -ItemType Directory -Force 
+0

Quand '-force'd, qu'arrive-t-il à un répertoire déjà existant? En général, je ne recommande pas aveuglément '-force'ing une cmdlet pour 'faire sa chose' à moins que je ne veuille spécifiquement forcer un état connu. –

+0

@JeffZeitlin Vous avez raison, peut-être que je ne devrais pas le recommander à la première place, mais Ansgar a déjà fourni le bon commentaire. Je voulais juste faire apparaître une autre façon de faire cela qui fonctionne également (même si le répertoire existe déjà). –

+0

si le dossier existe déjà, il porte la commande de toute façon sans l'affecter. Comme dans, il n'écrase pas le dossier, car il n'a pas besoin. Cela n'affecte pas le contenu du dossier s'il existe déjà. –

3

par les commentaires, Test-Path est l'applet de commande PowerShell vous devriez utiliser pour vérifier l'existence d'un fichier ou un répertoire:

$DIRE = "C:\DIRETORIO" 

if (Test-Path $DIRE) { 
    echo "Directory Exists" 
} else { 
    md DIRETORIO 
} 

La cmdlet Test-Path détermine si tous les éléments du chemin existent. Il renvoie $ True si tous les éléments existent et $ False s'il y en a manquant. Il peut également indiquer si la syntaxe du chemin est valide et si le chemin mène à un conteneur ou un terminal ou un élément feuille.

+0

Salut! J'utilise ça! Merci! –