Hello Have you tested with a command with @ ex:. @dir ?
On Sat, Feb 26, 2022 at 1:57 AM Bret Johnson <bretj...@juno.com> wrote: > This question is more about DOS in general than specifically about > FreeDOS. But, there are enough experienced and creative users around > FreeDOS that someone may be able to help me come up with a solution. > > I have a large set of DOS environments I use for testing. Basically, I > have a bunch of different versions of DOS that I can boot to (MS-DOS, > PC-DOS, FreeDOS, DR-DOS, from versions 3.0 to the latest of each). DOS > versions 1 & 2 were so lackluster that I don't bother even testing with > them. I have a copy of the commercial program called System Commander > which allows me to install and boot all these different versions of DOS > from a single partition on a hard drive. I know there are other ways to > accomplish the same feat, but I bought a copy of System Commander a long > time ago so that is what I use. > > I have all these DOS's installed on a Virtual hard drive so that I can run > them in different Virtual Machines with different types of CPUs (from the > lowly 8088 all the way up to modern CPUs). Again, this is a test > environment so that as I write programs I can verify they work whenever and > wherever they're supposed to. > > On the Virtual hard drive part of what System Commander does as you boot > is "restore" the hidden boot files (IO.SYS & MSDOS.SYS for MS-DOS, > IBMBIO.COM & IBMDOS.COM for PC- and DR-DOS, or KERNEL.SYS for FreeDOS), > along with the COMMAND.COM, CONFIG.SYS, and AUTOEXEC.BAT files so that > the virtual machine boots with the correct test environment. > > The problem is that the older versions of DOS don't work exactly like the > newer versions, particularly when it comes to batch files. For example, > prior to DOS version 3.3 you couldn't CALL one batch file from another, and > also prior to DOS version 3.3 you couldn't use the @ symbol at the > beginning of a line in a batch file to hide the output of the line (sort of > similar to what happens with the ECHO OFF you normally put at the beginning > of batch files but the @ symbol only works for a single line instead of the > entire batch file like ECHO OFF does). > > So, I have a relatively short AUTOEXEC.BAT file set up for each OS I boot, > which is unique to each OS. The main thing this small AUTOEXEC.BAT does is > set up some environment variables to identify the OS that booted which can > be used later in other batch files. At the end of the "simple" > AUTOEXEC.BAT file, I then jump to a "master" AUTOEXEC.BAT file that is > common to all the booted DOS's. Because each version of DOS is a little > different, the "master" AUTOEXEC.BAT file needs to do some "IF-THEN" > scenarios based on which version of DOS is running. I want the overall > environment to be pretty much the same (as much as I can, anyway) no matter > which DOS is running. Having a "master" AUTOEXEC.BAT file lets me make > most of my changes in one common place instead of needing to do the same > thing a bunch of different times for each DOS version. > > One problem I haven't figured out how to handle correctly is the ECHO OFF > vs @ECHO OFF issue. In older versions of MS- and PC-DOS (prior to version > 3.3), and all versions of DR-DOS, the "@ECHO OFF" command does not work at > the beginning of batch files. You need to use a simple "ECHO OFF" > instead. If they see an "@ECHO OFF" they display an "unknown command" > error (it tries to find an executable files called "@ECHO"). I'm trying to > figure out a way for all the "common" batch files (all batch files other > than the small AUTOEXEC.BAT file) to detect whether they can put the "@" at > the beginning of the line or not to keep the screen from getting > unnecessarily cluttered and confusing. I cannot figure out a way to do > this. I'll go through some of the things I've tried (to no avail -- the > all put "unnecessary stuff on the screen). > > I've tried creating an ECHO environment variable. With older versions of > DOS: > > SET ECHO=ECHO OFF > > and with newer versions of DOS: > > SET ECHO=@ECHO OFF > > then at the beginning of all batch files I put a: > > %ECHO% > > That works with older versions of DOS but not newer versions. With newer > versions, it sees the "%" at the beginning of the line instead of the "@" > and looks for an executable file called "@ECHO" instead of seeing the "@" > as the "hide this line" character. > > Another option would be to create an actual @ECHO.BAT file and always put > an @ECHO as the first line of all batch files, but that won't work either. > The "@ECHO OFF" line will show up on the screen (which is what I'm trying > to avoid), and in addition you must CALL the @ECHO.BAT file instead of just > running it. And you can't use CALL in older version of DOS. > > I've also thought of trying to use aliases/macros with ANSI or DOSKEY (or > clones of those) but that won't work either. ANSI will only create > aliases/macros for single characters (not entire words like ECHO or @ECHO), > and DOSKEY (or a clone) macros only work at the > command-line and not in batch files. Something like aliases in FreeDOS or > 4DOS might work (I'm not sure), but that defeats the purpose of the testing > which requires "native" DOS versions. > > I'm stumped. Right new it seems as if my only viable option is to always > use "ECHO OFF" instead of "@ECHO OFF" and just live with the cluttered > screens in later versions of DOS even though they could be avoided if I > wasn't trying to boot so many old DOS's on the same machine. > > I realize this is a minor issues in the grand scheme of things, but would > still like to figure out a solution if there is one. It's also > interesting when you experiment with the different DOS's to see what kinds > of compatibility issues there are. I've found DR-DOS isn't nearly as > compatible with MS-DOS as it's supposed to be. I've also heard/read that > MS-DOS and PC-DOS were for all practical purposes exactly the same up > through version 6.1, but I've found that not to be true either. From a > compatibility perspective, FreeDOS is actually pretty good (not perfect, > but definitely better than DR-DOS). > > Anyway, any other ideas on how to resolve the ECHO/@ECHO issue? > > > _______________________________________________ > Freedos-user mailing list > Freedos-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/freedos-user >
_______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user