Comment annuler un test conditionnel dans PowerShell?
Par exemple, si je veux vérifier le répertoire C: \ Code, je peux exécuter:
if (Test-Path C:\Code){
write "it exists!"
}
Existe-t-il un moyen de nier cette condition, par exemple (ne fonctionne pas):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
Solution :
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
Cela fonctionne bien, mais je préférerais quelque chose en ligne.
windows
powershell
Ben McCormack
la source
la source
-not
vient donc l'alternative traditionnelle d'!
alors? Puis-je en quelque sorte obtenir les alternatives traditionnelles pour-eq
et-ne
aussi?-not
est le seul opérateur logique fourni avec un autre (voirhelp about_Logical_Operators
), et les opérateurs ne peuvent pas être aliasés.!
parenthèses requises.!
lui - même ne nécessite pas de parenthèses. Du moins pas sur PS3.Si vous êtes comme moi et que vous n'aimez pas la double parenthèse, vous pouvez utiliser une fonction
Exemple
la source
not
implémentation partout (par exemplenot Test-Path -path C:\Code
, ne fonctionnera pas). Voir aussi ce lié poste .unless
comme mot-clé (commeif
), mais la plupart des utilisateurs d'autres langues le détestent.Powershell accepte également l'opérateur C / C ++ / C * not
Je l'utilise souvent car j'ai l'habitude du C * ...
permet la compression / simplification du code ...
Je le trouve aussi plus élégant ...
la source
si vous n'aimez pas les crochets doubles ou si vous ne voulez pas écrire de fonction, vous pouvez simplement utiliser une variable.
la source