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

Reply via email to