WAD Premature expansion of ~n

Aug 23, 2010
333
4
Sample output, sorry…
Code:
@ECHO -f "%~1" -- %2$
-f "" -- 2 3 -- 5
-f "5" -- 2 3 -- 5
@ECHO -f "%@UNQUOTES[%1]" -- %2$
-f "1" -- 2 3 -- 5
-f "1" -- 2 3 -- 5
 

rconn

Administrator
Staff member
May 14, 2008
10,925
97
I'm unclear why you're using a CMD kludge for a batch file that won't run in CMD, but ...

You're confusing alias arguments with batch variables. They are not the same, and TCC does not support the (bizarre) CMD ~ batch / environment variable syntax when expanding aliases.
 
Aug 23, 2010
333
4
Bizzare it may be, but concise and easy to write.
And of all the things, the current behavior is most surprising.
 
Aug 23, 2010
333
4
At least a note that
[[/cmdsyntax.htm The CALL-mode parameter expansion]] is not supported in alias parameters and may lead to surprising results. Please use appropriare TC variable functions (@UNQUOTES, @FULL, @DRIVE, @PATH, @NAME, @EXT) instead.
at the top of "Alias Parameters" section of /alias.htm would be enough.
 

rconn

Administrator
Staff member
May 14, 2008
10,925
97
Technically, that syntax isn't part of CALL. CMD originally introducted it for FOR arguments, then added it to batch arguments (either starting a batch file directly or through CALL).

Aliases are not the best tool for what you're doing here -- aliases arguments are nothing like batch files arguments. You should be using library functions (or perhaps user-defined functions), which will allow you to use the extended batch argument processing.
 
Aug 23, 2010
333
4
I'm not near that boat yet, but I'll look int them once I solve more pressing issues.
Thanks for your support, working with 4NT (and TCC) through these years was a pleasure. Mostly.