Comment puis-je annuler une condition dans PowerShell?
Comment puis-je annuler un test conditionnel dans PowerShell?
Par exemple, si je veux vérifier pour le répertoire C:\Code, je peux courir:
if (Test-Path C:\Code){
write "it exists!"
}
Est-il un moyen de contrer cette condition, par exemple (non-travail):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
Solution de contournement:
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
Cela fonctionne bien, mais je préfère quelque chose en ligne.
Vous devez vous connecter pour publier un commentaire.
C'est presque ça avec
Not
. Il doit être:Vous pouvez également utiliser
!
:if (!(Test-Path C:\Code)){}
Juste pour le plaisir, vous pourriez aussi utiliser un bit à bit ou exclusif, si ce n'est pas le plus lisible/compréhensible méthode.
-not
vient avec l'alternative traditionnelle de!
alors? Puis-je obtenir en quelque sorte les alternatives traditionnelles pour-eq
et-ne
trop?-not
est le seul opérateur logique qui vient avec un autre (voirhelp about_Logical_Operators
), et les opérateurs ne peut pas être un alias.!
nécessaire entre parenthèses.Get-ChildItem -r -inc *.txt | !Test-Path
Si vous êtes comme moi et n'aime pas le double parenthèse, vous pouvez utiliser une fonction
Exemple
not
de mise en œuvre de partout (par exemplenot Test-Path -path C:\Code
ne fonctionnera pas). Voir aussi cette la poste.unless
comme mot-clé (commeif
), mais la plupart des utilisateurs à partir d'autres langues, il déteste.Powershell aussi accepter le C/C++/C* pas d'opérateur
Je l'utilise souvent car je suis habitué à la C*...
permet la compression de code/simplification...
Je trouve cela plus élégant...