[comp.os.msdos.programmer] passing args through bat files

rreiner@yunexus.YorkU.CA (Richard Reiner) (10/13/90)

Batch files are mostly useful as wrappers aorund programs; however,
passing args through batchfiles to apps is one of the most broken
parts of command.com.  Among the things you Just Can't Do:

    - pass commas
    - pass equals signs
    - pass a string containing blanks as a single arg

For example, if foo.bat says

    c:\bin\echo # %1 # %2 # %3 #

(here I'm using an external echo program for clarity, so no one thinks
the problem has something to do with command.com's builtin echo, which
has problems of its own) and at a command.com prompt you say

    foo ,,,,, ===  "a b c"

what you get is

    # "a # b # c" #

whereas any reasonable shell should give you

    # ,,,,, # === # a b c #

or at least, if you happen to have trampled on some character that is
special to it, a reasonable shell should give you *some* way of
getting this.  But not command.com: there is *no* way around this.  Is
this braindead, or what?  Does someone have a solution (other than
using another shell, which is what I do)?  Is there *any* version of
MessDOS in which this works reasonably?