answer to the two points:

Yes (Well, as a precaution) it is necessary to unset first, this is because if, for some reason it has not been unser previously, from another script maybe, then if the user doesn't enter any data, the variable will not be altered.

say:
set %i This is some crap
set %i $$?="enter something"
if I press cancel, the variable %i will still remain as "This is some crap"

Secondly:

I know other people prefer to use (!%variable), but I prefer to write it out in the full...Easilly understandable:

if (%variable !== $null)
means:
(%variable(1) !(2)==(3) $null(4) )
if (%variable(1) NOT(2) equals(3) Nothing(4)

So, if the variable is not empty, do what ever follows in the { }

I don't think I've explained it properly, sorry, am in a rush to leave work!!!

Take a look at: /help if then else


Aubs.
cool