Hi group,
This message can be considered both as a minor bug report and a question.
Here's an introduction to what I tested:
I wrote a trivial program that I called getargs, it simply prints out the
argv list:
#include <stdio.h>
int main(int argc, char **argv) {
int i;
printf("got %d args:\n", argc);
for (i = 0; i < argc; i++) printf(" %d='%s'\n", i, argv[i]);
return(0);
}
Then, I executed this program with some arbitrary parameters:
getargs.exe /X=5 Y=6
on both FreeDOS and MS-DOS, it prints out things I expected, ie:
got 3 args:
0='C:\GETARGS.EXE'
1='/X=5'
2='Y=6'
and that's all fine. But now, let me introduce a twist. Instead of
calling getargs.exe directly, I call it through the following batch file,
called GETARGS.BAT:
@ECHO OFF
C:\GETARGS.EXE %1 %2 %3 %4 %5 %6 %7 %8 %9
and I do the same test again, but this time using getargs.bat instead of
getargs.exe.
On FreeDOS, I get this:
got 4 args:
0='C:\GETARGS.EXE'
1='/X=5'
2='Y'
3='6'
While MS-DOS 6 outputs this:
got 5 args:
0='C:\GETARGS.EXE'
1='/X'
2='5'
3='Y'
4='6'
As you can see, there is some inconsistency between how FreeDOS processes
this situation, and how MS-DOS treats it, this could probably be
considered a minor bug. But my biggest concern is about the reason both
decide to parse '=' as a switch delimiter in the first place, when called
through a batch file with %1 %2 %3 argument place-holders... Any idea on
that?
Is there anything I could do to make the batch file react exactly like if
the exe file was launched?
Note, that if I replace the %1 %2 variables in the batch file by actual
arguments (/X=4 Y=5), then the result is exactly the same as when the exe
file is executed directly, so I assume it's something strictly related to
how %1 %2 %3... variables are processed.
I took screenshots of my tests on both FreeDOS and MS-DOS, should this be
useful for any purpose:
https://s12.postimg.org/en1mbmgal/getargs_fdos.png
https://s16.postimg.org/7uvvosqad/getargs_msdos.png
best regards,
Mateusz
------------------------------------------------------------------------------
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel