Comment puis-je annuler une condition dans PowerShell?
Comment annuler un test conditionnel dans PowerShell?
Par exemple, si je veux vérifier le répertoire C:Code, je peux courir:
if (Test-Path C:Code){
write "it exists!"
}
Existe-t-il un moyen de nier 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érerais quelque chose en ligne.
203
demandé sur
Peter Mortensen
2011-11-11 18:50:10
2 réponses
Tu l'as presque eu avec Not
. Il devrait être:
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 bitwise exclusive or, 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!"}
379
répondu
Rynant
2014-05-19 23:56:34
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!'}
7
répondu
Steven Penny
2014-08-18 16:46:05