Code: Select all
1. If all of the following conditions are met, then quote characters
on the command line are preserved:
- no /S switch
- exactly two quote characters
- no special characters between the two quote characters,
where special is one of: &<>()@^|
- there are one or more whitespace characters between the
two quote characters
- the string between the two quote characters is the name
of an executable file.
2. Otherwise, old behavior is to see if the first character is
a quote character and if so, strip the leading character and
remove the last quote character on the command line, preserving
any text after the last quote character.
What it describes as "old behaviour"..
Is it trying to suggest that at one point in time, there was only this behaviour, and not the newer behaviour?
I just started up virtualbox with a windows 98 boot disk.
There was no COMMAND /S in MSDOS 6.22 https://web.archive.org/web/20070108185 ... ommand.htm And there wasn't in Win98 DOS either. So maybe that DOS is "old style"?
Code: Select all
C:\>COMMAND.COM /C "C:\ABC\Z Z\AZIB.EXE"
Bad command or file name
Compare that with the so-called "old behaviour" done by CMD, which is broken
Code: Select all
C:\Users\User>cmd /s /c "c:\carp\v v\w.exe"
'c:\carp\v' is not recognized as an internal or external command, operable program or batch file.
C:\Users\User>
Here's a weird one.. In the Windows 98 setup in VitrualBox, when I tried
Code: Select all
C:\>COMMAND.COM /C "ECHO ABC"
Bad command or file name
C:\>
So on Win98 DOS, It went a bit mad on COMMAND.COM /C "ECHO ABC", and it didn't work..
Whereas CMD's "old style",
Code: Select all
C:\Users\User>cmd /S /C "ECHO ABC"
ABC
C:\Users\User>
Do you know if it's simulating an old NT system?