Mateusz,
after 30 years, new insights into DOS batch processing.
on first sight, it seems to me that '=' is simply skipped by the
command interpreter.
testing on Windows XP (which is usually a supergroup of MSDOS)
C:>echo >test.bat echo '%1' '%2' '%3' '%4'
C:>test.bat /x=1 y=2
C:>echo '/x' '1' 'y' '2'
'/x' '1' 'y' '2'
surprise, surprise
Tom
am 28. November 2016 um 14:10 schrieben Sie:
> 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.
> O 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
Mit freundlichen Grüßen/Kind regards
Tom Ehlert
+49-241-79886
------------------------------------------------------------------------------
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel