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 d’annuler cette condition, par exemple (ne fonctionne pas):
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érerais quelque chose en ligne.
Vous l'avez presque eu avec Not
. CA devrait etre:
if (-Not (Test-Path C:\Code)) {
write "it doesn't exist!"
}
Vous pouvez également utiliser !
: if (!(Test-Path C:\Code)){}
Juste pour le plaisir, vous pouvez également utiliser une exclusivité au niveau du bit ou, bien que ce ne soit pas la méthode la plus lisible/compréhensible.
if ((test-path C:\code) -bxor 1) {write "it doesn't exist!"}
Si vous êtes comme moi et n’aimez pas la double parenthèse, vous pouvez utiliser une fonction
function not ($cm, $pm) {
if (& $cm $pm) {0} else {1}
}
if (not Test-Path C:\Code) {'it does not exist!'}
Powershell accepte également les opérateurs C/C++/C * et non
if (! (Test-Path C:\Code)) {écrire "ça n'existe pas!" }
Je l'utilise souvent parce que je suis habitué à C * ... permet la compression/simplification de code ... je le trouve aussi plus élégant ...