Something thats really annoying me with NSIS is why there are 2 different ways of doing things?
- Why have 2 ways of performing conditional statements/logic. Ie, use ‘$if’ or use ‘StrCmp’?
- Why be able to store variables in many different ways. Ie, use ‘$myvar’ or use ‘var myVar’ and I think theres more
- Why have assembly to access store variables? Why not just use the above methods
- Why can you create a comment by using both ‘;’ or ‘#’
Can you suggest a link that documents all the global variables? Such as $INSTDIR and others?
You clearly haven’t understood all of how NSIS works.
${If}and all of those things are from LogicLib, which was added to the NSIS standard library after it had been in existence for a long time. Formerly, you had to useStrCmp,IntCmp, or one of those jump operators.${If} a == bis just syntax sugar aroundStrCmpwith the labels all taken care of. It produces much more maintainable code.Var foois the variable declaration.$foois accessing the variable. They are thus quite different things. You can’t use$foowithout having already specifiedVar foo.I haven’t a clue what you mean by this.
Does it matter?
Look in the manual. It’s all there in plain sight. Try the Variables section.