



Please note that ASET does not accept combined options. If you want to
specify eg. both -e and -n (which means, that ASET does ONLY set the
ERRORLEVEL), you must invoke "ASET -e -n", not "ASET -en". The
reason for this behaviour is the fact that ASET parses the command line
two times, first for options and arguments, then for the command to be
processed. Between these two phases, ASET removes the options from the
command line (and it's much easier to remove single options than combined
ones...).
The above parsing algorithm shows another possible problem of ASET. Consider
an assignment
which should assign the string "-*" to A. The reality is different, however. You know,
what happens, don't you? -* is treated as an option (debug mode). After setting
debug=true, -* is removed from the command line and
remains, which will remove A from the list of environment variables. To avoid this,
you should always obey the following rule:
According to this rule, you should better invoke ASET like
which will do what you (hopefully :-)) want. Quoting strings avoids another possible
trap. Non-quoted strings are checked against a table which contains all of ASETs
function names, like SIN, COS, or whatever. Consider the following situation in a
batch file:
|
ASET A := fdir(fexpand('.'))
ASET B := 'D:\MYDIR' + %A%
|
|
The first assignment assigns A the name of the current directory without the full
path. The second assignment is supposed to assign B the value "D:\MYDIR\dirname",
with dirname being the above result. This will normally be ok, but there are about
150 cases in which it will fail, namely whenever dirname is one of ASETs function
names, eg. SIN or COS. In these cases ASET will try to evaluate the function, and in
this case fail because of missing arguments. Therefore, keeping the 'golden rule' in
mind, the correct way is:
|
ASET A := fdir(fexpand('.'))
ASET B := 'D:\MYDIR' + '%A%'
|
|



