How do I negate a condition in PowerShell? How do I negate a condition in PowerShell? powershell powershell

How do I negate a condition in PowerShell?


You almost had it with Not. It should be:

if (-Not (Test-Path C:\Code)) {    write "it doesn't exist!"} 

You can also use !: if (!(Test-Path C:\Code)){}

Just for fun, you could also use bitwise exclusive or, though it's not the most readable/understandable method.

if ((test-path C:\code) -bxor 1) {write "it doesn't exist!"}


If you are like me and dislike the double parenthesis, you can use a function

function not ($cm, $pm) {  if (& $cm $pm) {0} else {1}}if (not Test-Path C:\Code) {'it does not exist!'}

Example


Powershell also accept the C/C++/C* not operator

if ( !(Test-Path C:\Code) ){ write "it doesn't exist!" }

I use it often because I'm used to C*...
allows code compression/simplification...
I also find it more elegant...