WAD Premature expansion of ~n

Sample output, sorry…
@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
What's "%~1" supposed to do? Where is it documented?

I found "%~1$" in the help, but that asks for all the parameters 1 to 0!
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.
Bizzare it may be, but concise and easy to write.
And of all the things, the current behavior is most surprising.
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.
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.
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.

Similar threads