Batch Not-equal (inequality) Operator


Answer :

Try

if NOT "asdf" == "fdas" echo asdf 

Use NEQ instead.

if "asdf" NEQ "fdas" echo asdf 

I know this is quite out of date, but this might still be useful for those coming late to the party. (EDIT: updated since this still gets traffic and @Goozak has pointed out in the comments that my original analysis of the sample was incorrect as well.)

I pulled this from the example code in your link:

IF !%1==! GOTO VIEWDATA REM  IF NO COMMAND-LINE ARG... FIND "%1" C:\BOZO\BOOKLIST.TXT GOTO EXIT0 REM  PRINT LINE WITH STRING MATCH, THEN EXIT.  :VIEWDATA TYPE C:\BOZO\BOOKLIST.TXT | MORE REM  SHOW ENTIRE FILE, 1 PAGE AT A TIME.  :EXIT0 

!%1==! is simply an idiomatic use of == intended to verify that the thing on the left, that contains your variable, is different from the thing on the right, that does not. The ! in this case is just a character placeholder. It could be anything. If %1 has content, then the equality will be false, if it does not you'll just be comparing ! to ! and it will be true.

!==! is not an operator, so writing "asdf" !==! "fdas" is pretty nonsensical.

The suggestion to use if not "asdf" == "fdas" is definitely the way to go.


Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?