
Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4967                                         Date: 09-12-93  20:18
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #1
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
                                 The

                               Fabulous

       ####       ####        ###    ###         ##########
       #####     #####        ###    ###         ##########
       ### ##   ## ###        ###    ###         ###
       ###  ## ##  ###        ###    ###         ########
       ###   ###   ###        ###    ###         ########  
       ###    #    ###        ###    ###         ###
       ###         ###        ###    ###         ###
       ###         ###  ##    ##########   ##    ###     ##
       ###         ###  ##     ########    ##    ###     ##

                                 List 

                  (MicroSoft's Undocumented Features)

                          Volume 1  Number 6

===============================================================================

1)  TRUENAME

    Internal DOS 5.0 command.  Canonicalize a filename or path (using
    DOS interrupt 21h, function 60) prints the actual directory.

    SYNTAX

    TRUENAME filename      prints the complete path to file

    TRUENAME directory     prints the complete path to directory

    Note: If the path is in a network, it starts with a \\machine-name

                              Michael Larsson


    TRUENAME is analogous to the "whence" command in the UNIX Korn
    shell.  It returns the real fully qualified pathname for a command.

    TRUENAME is useful in networks, where a physical drive may be mapped
    to a logical volume, and the user needs to know the physical location
    of the file.  It ignores the DOS SUBST, and JOIN commands, or network
    MAPped drives.

    It is an undocumented MS/DOS feature, but is documented in 4DOS as
    follows:

    SYNTAX        (Internal DOS 5.0 / 4DOS)
 
    TRUENAME [d:][path]filename

    PURPOSE

    Returns a fully qualified filename.

    COMMENTS

    TRUENAME will see "through" JOIN and SUBST commands, and requires
    MS-DOS 3.0 or above.

    EXAMPLE

    The following command uses TRUENAME to get the true pathname for a
    file:

    c:\> subst d: c:\util\test
    c:\> truename d:\test.exe

    c:\util\test\test.exe

                              Dennis McCunney

    TRUENAME : will reveal the full name drive and path of the filename.
    If you specify a wildcard ('*') in the filename, it will expand
    the filename to use question marks instead. If the path includes
    the ..\ sequence, TRUENAME will examine the directory structure and
    calculate the path.  Stranger still, the line:

        TRUENAME \CRONK\FLIBBET\..\ART
        produces the response:
        C:\CRONK\ART

    even if the directories \CRONK\FLIBBET and the file ART don't exist!
    Don't expect this command to work across networks.

                              PC Magazine #212 Pg. 48-49
                              Forwarded by:
                              Rodney Atkins

===============================================================================
 
... A feature is a bug with seniority.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4968                                         Date: 09-12-93  20:19
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #2
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
2)  FDISK /STATUS ?

    Prints a screen just like using option 4 of fdisk "Partition
    information", but includes extended partition information.
    Nice if you want to get an overview without fear of pressing
    the wrong keys.
                              Armin Hanisch

    Doesn't work in Ver 3.30.

                              Mitch Ames

    FDISK /MBR

    MS-DOS 5.0 FDISK has an undocumented parameter, /MBR, that causes it
    to write the master boot record to the hard disk without altering the
    partition table information. While this feature is not documented, it
    can be told to customers on a need-to-know basis.

    What is the MBR?
 
    At the end of the ROM BIOS bootstrap routine, the BIOS will read and
    execute the first physical sector of the first floppy or hard drive on
    the system. This first sector of the hard disk is called the master
    boot record, or sometimes the partition table or master boot block. At
    the beginning of this sector of the hard disk is a small program. At
    the end of this sector is where the partition information, or
    partition table, is stored. This program uses the partition
    information to determine which partition is bootable (usually the
    first primary DOS partition) and attempts to boot from it.

    This program is what is written to the disk by FDISK /MBR and is
    usually called the master boot record.  During normal operation,
    FDISK only writes this program to the disk if there is no master
    boot record.

    Why is the MBR changed during Setup?

    During installation of Microsoft MS-DOS 5 Upgrade, Setup will replace
    the master boot record on the hard disk with code to display the
    message:

       The MS-DOS 5.0 Setup was not completed.
       Insert the UNINSTALL #1 diskette in drive A.
       Press the ENTER key to continue.

    This message should be erased and the master boot code rewritten
    before Setup is completed. If a problem occurs during Setup and you
    return to the previous MS-DOS, UNINSTAL should also remove this
    message. However, should Setup or UNINSTAL fail to remove this
    message, or should the master boot record become corrupted, a new
    master boot record can be written to the disk using the following
    command:

        C:\>fdisk /mbr

    Warning:  Writing the master boot record to the hard disk in this
    manner can make certain hard disks unusable.  IE: those partitioned
    with SpeedStor, or Microhouse's DrivePro program.  It can also cause
    problems for some dual-boot programs, or for disks with more than 4
    partitions.  Specific information is below.

    WARNINGS:

    This option should not be used if:

       - the disk was partitioned using Storage Dimensions' SpeedStor
         utility with its /Bootall option
       - the disk was partitioned using MicroHouse's DrivePro program AND
         the drive was NOT setup using a standard CMOS value.
       - more than 4 partitions exist
       - certain dual-boot programs are in use

    Storage Dimensions' SpeedStor utility using the /Bootall option
    redefines the drive's physical parameters (cylinder, head, sector).
    /BOOTALL stores information on how the drive has been changed in an
    area of the master boot record that MS-DOS does not use. FDISK /MBR
    will erase that information, making the disk unusable.

    MicroHouse's DrivePro program functions similarly to SpeedStor above, 
    and has the same boot record vulnerability.  MicroHouse identifies their
    boot program at boot-up by a small MICROHOUSE logo near the left side of
    the screen about two-thirds down, at power on.  If you see this logo, 
    do NOT use FDISK /MBR, or the drive will become unusable.

    Some older OEM versions of MS-DOS and some third-party partitioning
    utilities can create more than 4 partitions.  Additional partition
    information is commonly stored information on partitions in an area
    that FDISK /MBR will overwrite.

    Some dual-boot programs have a special MBR that asks the user which
    operating system they want on bootup.  FDISK /MBR erases this program.
    Dual-boot systems that boot whichever partition is marked Active are
    not affected by FDISK /MBR.

                              Edited: MicroSoft Publication
                              forwarded by Don Dean
                              editing suggestions made by
                              Matt Mc_Carthy (info re:
                              MicroHouse's DrivePro)
 
... BUG (n.) An undocumented feature   FEATURE (n.) A documented bug.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4969                                         Date: 09-12-93  20:21
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #3
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
2)  FDISK /MBR (Continued)

    If you have a Boot Sector Virus, just boot from a known "clean"
    floppy disk (which has the System files and FDISK on it - IE:
    your "disaster recovery disk") and run FDISK /MBR.  Bye, Bye Virus!

                              Gary Cooper

    Make sure it's write protected ..

                              Jasen Betts


    [Begin quote]

    One of the FDISK functions, updating the Master Boot Record (MBR),
    does not appear on any of the FDISK menus. The Master Boot Record is
    located at the beginning of your primary fixed disk. It is composed of
    two parts -- the master boot code and the partition table. The master
    boot code is a short program that determines which operating system
    will start the computer, then transfers control to that operating system.
    The partition table contains information about the partitions located on
    the fixed disk.

    The Master Boot Record may need to be updated when:

    * An operating system other than MS-DOS is on the fixed disk.
      Some operating systems replace the master boot code with their
      own program, which may not allow MS-DOS to start the system,
      even if the partitions are valid DOS partitions. If this condition
      exists, updating the Master Boot Record will replace only the master
      boot code.

    * The information at the beginning of the fixed disk has been
      overwritten. The partition information is destroyed and the fixed
      disk will no longer start any operating system. If this condition
      exists, updating the Master Boot Record will replace both the master
      boot code and the partition table. However, the partition table will
      not have any defined partitions.

    If you cannot get your system to start MS-DOS from the fixed disk and
    you are sure the initialization process was performed correctly, you
    may need to update the Master Boot Record. To do this, enter the
    following command:

         FDISK /MBR

    FDISK does not display any menus or messages while it is updating the
    Master Boot Record. When the procedure is complete, the MS-DOS
    prompt is displayed.

    If you are unable to start MS-DOS from the fixed disk after updating
    the Master Boot Record, you may need to partition and format your fixed
    disk. If you still cannot use the fixed disk to start MS-DOS, contact
    your Authorized COMPAQ Computer Dealer for further assistance.

    [End quote]
                              Compaq DOS 4.01 Manual
                              Submitted by
                              Paul Maserang

    If the situation at hand involved a trashed partition table. This
    regenerates the partition table, but does NOT restore the user
    partition information in it. Therefore, after using FDISK /MBR, you
    must still use FDISK without the /MBR switch to re-enter the partition
    information before you can do anything else. If the newly entered
    partition information is identical to that which existed there prior
    to the partition table being trashed, and nothing else has been damaged,
    there should be no need to reformat the drive, because the boot sector,
    FATs, directories, and data should still be undisturbed. If the boot
    sector or either of the two hidden system files (IBMBIO.COM/IBMDOS.COM 
    or IO.SYS/MSDOS.SYS) are damaged, the SYS command can be used to restore
    them without losing anything else.

                              Paul Maserang
 
... Its not a bug, its an undocumented feature.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4970                                         Date: 09-12-93  20:23
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #4
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
2)  FDISK /MBR (Concluded)

    Paul, I work _only_ with the Microsoft versions, and have not had the
    same experience.  The /MBR parameter _only_ rewrites the MBR.  It does
    not affect the partition information.  I use it daily on various
    machines and have not lost one byte of data.

                              Matt Mc_carthy

    I guess you didn't know that "Master Boot Record" and "Partition Table"
    refer to the same thing.  What you're talking about is the master boot
    CODE, the executable code that accompanies the partition table and is
    located on the same physical sector (0).

    Here's what I find in the first few bytes of my physical sector 0
    (unassembled with DEBUG after copying the sector to a file):

    2BB7:0100 33C0            XOR     AX,AX
    2BB7:0102 FA              CLI
    2BB7:0103 BED0            MOV     SS,AX
    2BB7:0105 BC007C          MOV     SP,7C00
    2BB7:0108 BEC0            MOV     ES,AX
    2BB7:010A BED8            MOV     DS,AX
    2BB7:010C FB              STI
    2BB7:010D 8BF4            MOV     SI,SP
    2BB7:010F BF0006          MOV     DI,0600
    2BB7:0112 B90002          MOV     CX,0200
    2BB7:0115 FC              CLD
    2BB7:0116 F3              REPZ
    2BB7:0117 A4              MOVSB
    2BB7:0118 EA1D060000      JMP     0000:061D

    I also find the following text in the first half of the sector:

        Missing operating system.Error loading operating system.Invalid
        partition table.Author - Siegmar Schmidt

    I have only one partition on my C: drive, and its information is in
    the last of four possible positions in the partition table. The first
    significant byte (non-zero) is at offset 01EEh in physical sector 0.
    The rest, from offset 00EDh to 01EDh is nothing but 00h.

    So it would appear that everything from offset 0000h to 00ECh is the
    Master Boot CODE, and everything from 00EDh to the end of the sector
    (01FFh) is the Master Boot RECORD (aka partition table). More likely,
    the partition table probably begins at offset 0100h, and takes up the
    last 256 of the 512 bytes available in the sector.

    Beginning with the first significant byte of my partition table (at
    offset 01EEh), this is what mine shows:

       80 01 01 04 03 91 65 11 00 00 00 07 A3 00 00 55 AA
       ^^
    This first byte, I think, is the drive on which this partition
    is located, and the next byte might indicate that this is the
    first (primary) partition (in my case, the ONLY partition for
    this drive).

    Now, according to my manual, FDISK /MBR can either re-write only
    the Master Boot CODE when necessary; or it can re-write both the
    Master Boot Code AND the Master Boot RECORD, if it determines that
    the partition table has been corrupted.

    If it does re-write both, then you do have to use FDISK without
    the /MBR switch after using it with the switch, because the
    re-written partition table has no defined partitions until you do.
    But when you use the /MBR switch, it produces no screen output
    (at least not on the version I'm using), so you don't know whether
    it did both or just the code. So you should still check to see that
    you have a valid partition by using FDISK without the /MBR switch
    afterwards.

                              Paul Maserang
===============================================================================
 
... Life has a lot of undocumented features!
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4971                                         Date: 09-12-93  20:24
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #5
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
3)  SHELL=C:\COMMAND.COM /E:1024 /F /P

    The /F in your Config.sys SHELL= statement is another undocumented
    feature.

    It forces a "Fail" response to the "Abort, Retry, Fail" prompt issued
    by the DOS critical error handler.

                              Dennis McCunney

    The /F switch on the SHELL command in CONFIG.SYS will not work in
    a DESQview environment. The only thing I have found that will is a
    program called FATAL.COM.

                              Bruce Bowman

    COMMAND /F

    Makes all those annoying "Abort, Retry, Ignore, Fail?"
    disk error messages default to "Fail".

                              Erik Ratcliffe

    For DOS 3.30 (somebody might care to check these for other versions):

    COMMAND /P

       Docs say that this doesn't allow you to exit back to the
       previous shell (ie /Permanent), but /P also forces
       \autoexec.bat to be run on secondary shells.

    COMMAND /D

       (When used with a primary shell, or secondary with /P)
       prevents execution of \autoexec.bat

                              Mitch Ames

    I just checked, and these also both apply to DOS 5.00

                              Mitch Ames

===============================================================================
4)  VER/R

    Yields extended information about the OS Version.  IE:

    MS-DOS Version 5.00
    Revision A
    DOS is in HMA

                              Billy Gilbreath

    Doesn't work with DOS 3.30

                              Mitch Ames

===============================================================================
5)  ECHO OFF     from the command line erases the prompt and leaves
                 just a cursor on the screen.

    ECHO ON      from the command line restores the prompt.
 
    This works with all version of DOS (tested so far!).

                              Michael Larsson

    One of the most frequently asked questions in the BatPower echo
    is "How do I ECHO a blank line?"  The most common answer is "ECHO."
    However, I have captured a few posts which expand on the
    possible answers to this request:

                              Editor's Note

    ECHO"

                              Paul Welsh

    just about any white space character will work. 

                              Alan Newbery

    I just found out myself that any delimiter will work here
    (ECHO. ECHO" ECHO, ECHO: ECHO; ECHO[ ECHO] etc.).  Apparently
    it's just the way that the command handles the delimiter and
    has been available from way back.  Microsoft just began
    mentioning it in the documentation recently, though, and their
    examples use a period.

                              John Whitfield
===============================================================================
 
... _My_ software never has bugs.  It just develops random features...
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4972                                         Date: 09-12-93  20:26
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #6
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
6)  FORMAT

    FORMAT /H

        In DOS 3.30 (I don't know about other versions), FORMAT /H
        will cause the format to begin immediately after pressing Y
        in response to "Format another?", rather than displaying
        "Place disk to be formatted in drive A: and press Enter" on
        a second and subsequent disks.

                              Mitch Ames

        On 5.0 it comes back as "invalid switch".

                              John Mudge

    FORMAT A: /AUTOTEST

        The autotest parameter will allow format to proceed, checking
        existing format (unless the /u parameter is also present) and
        proceeding with the format.

        All this will take place with no delay and no waiting for user
        input.  It will also end without pausing.  It will not ask for
        a volume label or whether to format another diskette.

        WARNING!  This procedure will also work on hard drives!  Be very
        cautious if you plan to use this feature.

                              Wayne Woodman

        Problem is that it won't take any other switches like /U, /S or
        /Q which is a bit of a shame really.

                              Peter Lovell

        With Dos 5 it certainly takes /u and /s as I have used it, in
        fact I think /u is required if the disk is not pre-formatted as
        the drive hangs up otherwise.

        I would agree about /q though, this does not work and gives the
        error message you quote.

                              Terry Kreft


        FORMAT/U is not available in DOS 3.30

                              Mitch Ames

    FORMAT C: /BACKUP

        This week I've read some articles in Dutch computer magazines about
        MUF's which are very interesting (if you don't already know about
        them).

        I already knew the FORMAT option /AUTOTEST, but new to me was the
        /BACKUP option.

        EXAMPLE: FORMAT A: /BACKUP

        It seems to work exactly like /AUTOTEST, but it DOES ask for a
        volume label.
                              Willem Van.den.broek
  
    FORMAT/SELECT

        is like DOS-Mirror  ... for safety-fanatics only

    FORMAT/SELECT/U

        makes disks unreadable (remember the U)

                              Reinhard Kujawa
                              Info from The German magazine PC PRAXIS

    FORMAT A: /SPACE

        On IBM DOS v6.01 the command:

        FORMAT A: /SPACE

        puts a 12288 byte file named MIRROR.FIL on the disk ...

        So, the command:

        FORMAT A: /U /SPACE

        just ruins the durn diskette!  A subsequent "DIR A:" gives you a:

          General failure reading drive A
          Abort, Retry, Fail

                              Vernon Frazee
===============================================================================
 
... Hidden OLR feature: CTRL-ALT-DEL to view BBS user password file.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4973                                         Date: 09-12-93  20:28
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #7
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
7)  DRIVPARM /c

    Syntax:  DRIVPARM /d:number [/c] [/f:factor] [/h:heads] [/i] [/n]
             [/s:sectors] [/t:tracks]

    /d:n   refers to the drive NUMBER (0=A:, 1=B:, 2=C:, etc...) of the drive
           whose parameters you are changing (in your case, it would be 2 for
           B:).

    /c     is the switch I was referring to for change line support.  IF YOU
           INCLUDE /c, YOU ARE TELLING DOS THAT YOUR COMPUTER *CAN* TELL
           WHETHER THE DRIVE DOOR HAS BEEN OPENED SINCE THE LAST ACCESS.

    /i     specifies an electronically-compatible 3.5 inch floppy disk-drive.
           You should use it if your computer's ROM BIOS does NOT support 3.5
           floppy diskette drives.

    /n     specifies a NON-removable block device

    The other parms are similar to DRIVER.SYS

                              IBM Technical Publication Information
                              forwarded by Andrew Barnhardt

    The '/C' switch doesn't actually check to see if the drive -door-
    has been opened or not, but it does make another check to see if
    the disk in there now is different from the one when the drive was
    last accessed.  I have to use that switch with my 5 1/4 floppy
    because it's an older drive working with a new motherboard (at
    least that's the explanation I've heard).

                              Andrew Barnhardt

    Does DRIVPARM return an errorlevel, or give a warning message?

                              Gary Cooper

    No, not that I'm aware of.  You insert the drivparm command in
    your CONFIG.SYS file.  Just DRIVPARM=xx xx ...

                              Andrew Barnhardt
===============================================================================
8)  IF EXIST

    IE: IF EXIST EMMXXXX0 GOTO APPLICATION

    This is a handy quirk of DOS - installable drivers are seen as files
    in all directories.  You can use the if exist test to either test for
    the existence of a directory, with "if exist <dirname>\nul", (which
    fails if the directory does not exist because the nul device is not
    found,) or to test whether a driver is loaded.

    Caveats:  you need to know the name of the directory or the driver
    whose existance you are testing, and this is MS/DOS specific - it
    doesn't work on network drives, and may not work under DR-DOS.

                              Gary Marden

    This works definitely under DRDOS:

              DR DOS Version 6.0
              Copyright (c) 1976,1982,1988,1990,1991 Digital Research Inc.
              Alle Rechte vorbehalten.

              C:\>if exist emmxxxx0 echo ja
              ja

                              Wolfram Serber

    Where did you learn the "EMMXXXX0" name from?

    Instead of typing MEM /C, type MEM /D for the "debug" listing.
    That should give the names you're looking for.

                              Erik Ratcliffe

    The trouble is, EXISTS returns TRUE for COM3/4 and LPT2/3 even
    though the hardware does not exist.

                              Rudy Lacchin
===============================================================================
 
... Aha! Another 'undocumented feature'!
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4974                                         Date: 09-12-93  20:30
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #8
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
9) SWITCHES

    SWITCHES=/W

        Enables you to have your WINA20 file anywhere on your boot
        drive.  Without this you have to have it in the root directory.

                              Erik Ratcliffe

         You should also mention that this one should not be used with
         Windows 3.1. I've noticed a lot of people who do, and it wastes
         around 120K of UMBs.

                              George Hannah

         This is documented in DOS 6.0

                              Richard Pade

    SWITCHES=/F

        Do you know that there is a rarely known switch called /F?
        If you put this line:

              SWITCHES=/F

        as the first line in your CONFIG.SYS, MS-DOS would not delay 2
        seconds, but immediately start processing your CONFIG.SYS. This
        trick has no other effects (AFAIK), but those who DO know better,
        correct me if I'm wrong!

                              Samuel Tan Yi Hsuen

        But where would you put the switch, it's not like you load a device
        driver that early in boot up do you?

           RF? Beats me. I think it goes in the SHELL= statement. Just don't
           RF? remember what character you use. I saw it mentioned in the
           RF? Tech conference /K maybe?

        No, it's SWITCHES=/F, right?

                              Paul Senechko 

        Actually, its both:

            /W allows you to move the WINA20.386 file
            /K makes your AT Keyboard act like a XT
            /F Disables the wait
            /N Disables F5/F8 exiting

        and to use any just put the command SWITCHES= and the parameters
        on the first line of your config.sys (Can go on other lines, but for
        the /F and /N you need it at the first line....), also the Switches
        command IS compatible w/ DOS 5, but only using the /W & /K options

                              John Guillory

===============================================================================
10) FOR IN DO

          for %%z in (test1 test2 test3) do goto %%z
          goto end
          :test1
          echo test1
          :test2
          echo test2
          :test3
          echo test3
          :end

     When I posted this explaining the traps and pitfalls
     of FOR IN DO, something got lost. GOTO commands in FOR IN DO
     statements do not work correctly / as expected. This fragment
     will work in 4DOS, but not with COMMAND.COM. You've seen
     what happens when running under COMMAND.COM already. 4DOS
     will display test1 test2 test3.

     So, that's what I was trying to explain: that GOTO's don't work
     right, and that IF's will break FOR IN DO's.

                              Bill George
===============================================================================
 
... Any sufficiently advanced bug will become a feature.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4975                                         Date: 09-12-93  20:32
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #9
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
11) FOR %%V IN /SOMETHING

    ... quoting Dirk Treusch to All ...

    How can a batch file (without 4DOS) determine from which drive it has
    been started?

    Example: C:\> a:test.bat

    Now my batch should be able to find out that it is located on drive A:
    (not the path - only drive!).

    Mitch Ames responds:

    The variable %0 contains the name of the batch file
    _as_it_was_typed_at_the_command_line.  If you call the batch file as
    A:TEST.BAT, %0 will be "A:TEST.BAT".  If you have the directory on
    your path, and simply type TEST, then %0 will be "TEST".  The drive,
    path and extension will only appear in %0 if you enter them in the
    command used to call the batch file (either typed at the command
    line, or called from another batch file).

    So you _must_ specify the drive as part of the batch filename for
    this to work.  To extract the drive only, use STRINGS, or similar (I
    don't have a copy, so don't ask me to post it).  Alternatively use
    the undocumented FOR %%V in /SOMETHING command, eg:

          set drive=
          for %%v in (/%0) do call test2 %%v
          echo Calling drive is %drive%

    where TEST2.BAT is:

          if not '%drive%'=='' set drive=%1:

    Disclaimer - I haven't tested this.  Debugging is up to you.

    (You can, of course, fit this into a single recursive batch file -
    but that's left as an exercise for the student.)

    FOR %%V IN (/SOMETHING) DO WHATEVER will do WHATEVER twice - the
    first time with %%V set to the first character in SOMETHING ("S"),
    the second time with all the remaining characters in SOMETHING
    ("OMETHING").  If SOMETHING is only a single character, WHATEVER will
    only be called once, with that character in %%V.  If the single
    character is a wildcard (? or *) that wild card will _not_ be
    expanded to a set of filenames.  (The main purpose of this feature is
    apparently to allow inclusion of the literal characters "?" and "*" 
    without them being expanded.)

    This works in DOS 3.30 and 5 - I don't know about other versions.

                              Mitch Ames

===============================================================================
12) LEADING SLASH WITH FOR IN DO LOOP

    In the FOR statement in the INIT and COUNT routines below the
    parameters in the () show a leading "/".  This seems to separate
    the first digit of the environmental variable used within the
    brackets ().  Am I correct? Is this documented anywhere?

    :================= INIT =================
    set &=%4&|set n$=%4|set m$=%3|set #=%2|set !=%0
    if not '%m$%'=='0' for %%a in (/%m$%z) do if '%%a'=='0' set @=0
    %!%
    :================= COUNT ================
    if '%&%'=='&' goto PROCESS
    for %%a in (/%&%) do set &=%%a

                              Peter Joynson
      
    I have read some articles about this in PC Computing & PC Magazine.
    I don't believe it is documented anywhere but you're right, it strips
    off the first character of whatever string is passed.  I will try to
    find one of the articles that explains it better if you need it.

                              Robert Hupf

    Correct.  I believe it is not documented (up to DOS 5 anyway) by MS,
    but I have read from other sources that the leading / will split an
    item into the first character and everything else.  Eg:

            for %%n in (/hello there) do echo %%n

    will display "h", "ello" and "there".  "There" is not split because
    it is a separate item, delimited by the space.  If used with an item
    including wildcard (? or *) characters the item will not be expanded
    to the files which match it, thus allowing inclusion of those
    characters in the set.  Eg:

            for %%n in (/? /*.bat hello) do echo %%n

    will display "?", "*", ".bat", "hello".  This apparently is the
    original reason for the feature, but it may also be used recursively
    to parse a string one character at a time.

                              Mitch Ames
===============================================================================
 
... Features should be discovered, not documented.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4976                                         Date: 09-12-93  20:34
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #10
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
13)  ATTRIB

    ATTRIB +h dirname

    Is there anyway to create a hidden directory on a hard drive?

    I've since learned that DOS 5.0 ATTRIB can do the same thing
    from the command line:  ATTRIB +h dirname.

                              Gary Smith

    ATTRIB ,

    attrib ,|echo y|del *.*

    It is not really piping the output of attrib to echo.  Using the pipe
    is one way of stacking multiple commands on one line.  All the "attrib ,"
    does is reset _ALL_ attributes on _ALL_ files in the current directory.
    So if you were to run that from the root of your c: drive you would no
    longer have a bootable drive.

                              Jim Banghart

    Worked fine here, took out all the files (system, hidden, read-only),
    like a dream with no lock up, using MSDos 5.0

                              Terry Kreft

    I do not recommend this practice. It does attempt to pipe the output
    of attrib to echo, and thus writes a file to the directory specified
    by the environment variable TEMP. If you try to run this program in
    your TEMP directory, you will get a sharing violation. It also
    actually slows your program, because it has to write and delete a
    useless file (unless you have your TEMP on a ramdisk).

    I can't say I see much reason for stacking commands like this -- put
    the commands on separate lines. A character is a character, be it a
    carriage return or a pipe, and your files will be easier to understand.

                              Bruce Bowman
===============================================================================
14) INSTALLHIGH

    I think I may have found an undocumented feature for DOS 6....
    I wasn't able to find this anywhere in the online help.  It's
    called INSTALLHIGH= and amazingly enough it works just like
    INSTALL= but loads the file high!

    The only drawback to this is: Memmaker will not go through and
    add switches for that particular line during the "optimizing
    process".  It just takes it as it is currently.  But then again
    INSTALL= is ignored too!

    Example:
    DEVICE=C:\DOS\HIMEM.SYS
    DEVICE=C:\DOS\EMM386.EXE NOEMS HIGHSCAN WIN=F500-F7FF WIN=F200-F4FF
    dos=HIGH
    dos=UMB
    installhigh=c:\dos\share.exe

                              Robin Francis

    MUF reported in the magazine C'T:  You can use the DOS 6.0 command
    "installhigh" in config.sys to load TSR programs into UMA. A 48 byte
    environment will be added for every program.  If you use it you don't
    need the "loadhigh" in autoexec.bat any more.

    But Memmaker can't handle installhigh!

                              Thomas Erbe

    Further to Robins explanation, INSTALLHIGH cannot be directed to a
    specific UMB area and thus defaults to largest currently available.
    Like INSTALL it is processed (about) last of C.SYS lines and causes
    more consumed RAM overhead than calling TSR from A.BAT or later.

                              Richard Pade

    There is an undocumented CONFIG.SYS command called INSTALLHIGH. It
    is similar to INSTALL except that it will load the TSR into an UMB.
    It is available under DOS 6. However, it does not support the
    /L and /S switches that DEVICEHIGH and LOADHIGH support.

                              Tom Dyas

    Then it is useless, isn't it? It has less than the capabilities of
    LOADHIGH and DEVICEHIGH but load the same TSRs that they load ... no
    wonder it is an undocumented command.

                              Wayne Moses

    Just wondering, does INSTALLHIGH work with Microsoft DOS 5? It
    would also be nice to know why it is undocumented. It doesn't do
    anything major! Microsoft gains nothing by keeping it undocumented.
    Loading TSR's from CONFIG.SYS is better because an environment is
    not allocated for the TSR. A very small amount of memory is
    conserved, but it is still conserved.

                              Tom Dyas
===============================================================================
 
... DOS 6.0 - DOS 4.01 with its features documented.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4977                                         Date: 09-12-93  20:35
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #11
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
15) : (command)

    DOS uses a leading : to indicate a label.  If the next character
    following the : is a space or other non-alphanumeric char, DOS
    will decide it's an invalid label and skip to the next line,
    performing no further action.

                              Dennis Mccunney
===============================================================================
16) PATH

    With MS-Dos 6.0 you CAN exceed the normal path length limit by
    putting a "Set Path=C:\;..." in your Config.Sys file instead of
    your AutoExec.Bat file.  The usual limits do not apply there.

    I have put in a path well over 800 characters and it works fine.
    The path doesn't display correctly via PATH or SET, but it's in
    there and it all gets searched.

    I don't recommend having a path that long, mine is normally
    only 6-8 directories.

                              Andrew Barnhardt
===============================================================================
17) EDLIN

    where an EDLIN script is:

           -1,#r 1:^Z  1:
           -1,#r 2:^Z  2:
           -1,#r 3:^Z  3:
           -1,#r 4:^Z  4:
           -1,#r 5:^Z  5:
           -1,#r 6:^Z  6:
           -1,#r 7:^Z  7:
           -1,#r 8:^Z  8:
           -1,#r 9:^Z  9:
           e

    Note the spaces (one after R, two after ^Z) which prevent replacement
    of the second digit in a two digit number.

    This will update the last line only, so needs to be done at each
    boot.  '#' means last line +1. '-1' means the line before the current
    one (ie: the last line of the file, if "#" is the current line).  Note
    that you can only use '-1' in later versions (it works in 5, but not
    in 3.30 as far as I know).

                              Mitch Ames
===============================================================================
18) DELIMITING CHARACTER:

    Prior to DOS 5.0, there was an undocumented DOS function that
    would allow you to set the DOS option delimiting character to
    something else, like -.  Once you did this, you could use either
    \ *or* / in PATH specs.

    DOS 5.0 removed the function to *set* the option delimiter, but
    *retained* the one to query what it currently is!  (Don't ask me,
    ask M'Soft...)  Fortunately, the MKS Toolkit still works with no
    apparent glitches.

    I believe in pre-DOS 3.X versions that there was a parm you could
    provide in CONFIG.SYS to do this, but have no further details.

    Just remember: "undocumented" is a synonym for "unsupported, and
    not guaranteed to be there next release", which is what happened
    in the case I mentioned above.

                              Dennis Mccunney
===============================================================================
19) REM IN LINES WITH PIPES OR REDIRECTS

    ie:    REM echo y | del *.*

    Michael Serber reported that he encountered problems when
    he tried to REM out an "echo y|del *.*" line in his batch
    file.  Here is the content of some of the responses he 
    received in response to his question asking why he experienced
    the problem:

    It (the problem) appears to only occur if there is a pipe or
    redirection in the line (REM'd out), leading me to believe that
    DOS first handles pipes and redirections, then goes back to
    find out what to do with them.

                              John Mudge

    It's actually doing what it thinks you've told it: piping the
    output of REM to DEL.  Since REM _has_ no output (remember
    REM > NULLFILE?), DEL hangs, waiting for the answer to its
    question.

                              Gary Smith

    What is happening here is that DOS reads the entire line, and
    always processes redirection and piping *first*, regardless of
    where they happen to appear.

                              Dennis Mccunney
===============================================================================
 
... That's not a bug! It's a seldom-used, undocumented feature!
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4978                                         Date: 09-12-93  20:38
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #12
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
20) CALL

    The DOS 5.0 manual, in the command reference for CALL, states:

    Syntax: call [drive:][path]filename [batch-parameters]

            Parameters [drive:][path]filename

            Specifies the name and location of the batch program you
            want to call.  Filename must have a .BAT extension.

            The latter sentence is not true in DOS 5.0.  CALL works
            equally well whether "filename" is a .BAT, .COM, or .EXE
            file, or even internal command the following all work
            just fine:

            call dir
            call mem
            call tree
            call echo Phhhhhhht!

                              Gary Smith

===============================================================================
21) CHOICE

    I blundered onto an interesting choice.com feature:

        CHOICE /C:XM*; /N /T:2,5
        if errorlevel=4 goto help
        if errorlevel=3 goto end
        ......etc

        The "*" is the escape key, and the ";" is F1 etc.

                              Robert Lindsay

===============================================================================
22) MEM /A

    If you do a MEM /A it'll give you details of what's in the first meg
    of memory.

    Windoze owners get MSD.EXE (a pretty undocumented utility), that tells
    you this sort of thing.  If you do a MEM /A it'll give you details of
    what's in the first meg of memory.

                              Ben Davis

===============================================================================
23) MOUSE /U

    Microsoft mouse driver version 8.1 has a /U switch.  Adding that switch
    loads all but 3.3k of the driver into HMA.  It's not quite the most
    recent version mouse driver, but hey, a mouse driver is a mouse driver
    is a mouse driver, right?  Especially when it only takes 3.3k of ram!

                              Mark Carter

    Are you getting that result by loading the mouse driver high on a 286?
    If so, that is good news. Mine takes up 12k of main RAM (MS mouse
    driver ver. 7.0).

                              Gerry Pareja

    Mouse 8.0 _is_ able to load itself into HMA (I think) on a 286 by using
    the undocumented /U switch. I read it in PC Magazine sometime back.
    Also, PC Mag said that the BUFFERS have to be set to a low value, e.g. 5.

                               Ng Cheng Kiang
===============================================================================
 
... All On-Line readers, press the un-documented ALT-H combination now...
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4979                                         Date: 09-12-93  20:40
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #13
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
24) %0

    Note that %0 is (almost) always defined as the name of the batch file
    itself (including drive\directory as typed at the command line).  The
    only time %0 is not defined is in Autoexec.bat when run by
    Command.com at boot time (or command/p).

                              Mitch Ames

    The %0 parameter is the name of the program.  But wait, there's
    more.  If you want to test for the name of the program you are in!
    What do your want to test for?

    One time you type "edit", another you type "EDIT", another "EDIT.BAT",
    another "C:EDIT.BAT", and another "C:\BELFRY\EDIT.BAT".  How many
    combinations do you want to test for at the start of your batch file?

    You can map the file name to upper case and take care of some of the
    problem as follows:

        SET SAVEPATH=%PATH%
        PATH %0
        SET PROGNAME=%PATH%
        PATH %SAVEPATH%
        SET SAVEPATH=

    To do the test, something like this might work:

        FOR %%E IN (EDIT EDIT.BAT C:EDIT C:EDIT.BAT C:\BELFRY\EDIT ...
               ... C:\BELFRY\EDIT.BAT) DO IF '%%E'=='%PROGNAME%' GOTO HIT
        ECHO BAD COMMAND OR FILE NAME
        GOTO ENDIT
        ...
        :HIT
        REM START EXECUTION HERE....

     There is one last gotcha to %0.  When AUTOEXEC.BAT is run by the bootup
     sequence, %0 has no value.  This is important if you want to find out if
     you are in AUTOEXEC.BAT, and if you are in AUTOEXEC.BAT for the first
     time.

     I have seen this work with IBM's PC-DOS 3.10, various flavors of
     MS-DOS 3.10, 3.30, 3.31, 4.01, and 5.00.  It also seems to work
     with DR-DOS 6.0.  As to 4DOS, I have no idea, but would welcome
     feedback on the matter (although 4DOS and DR-DOS hardly qualify
     for a MUF entry....)

                              Mike Avery

    So far as I know, it's not been documented anywhere 'officially',
    but I did read about it in an article sometime back, probably
    either in PC Magazine or in PC Computing.

                              Gary Smith

    I've never seen it documented - it just bit me one day REAL HARD!
     
    Well, the way I figured it was that when the boot process hands control
    to AUTOEXEC.BAT, the normal command line interface isn't used, so %0
    never gets set.

                              Mike Avery

    This feature can actually be useful, because you can put
    statements like this in your autoexec:

       if NOT (%0) == () goto skip
       [statements that should not be re-executed go here]
       :skip
       [statements that can be re-executed go here]
       path ...
       set ...
       etc.

    Then you can recreate your bootup environment at any time by
    simply typing AUTOEXEC.

                              Gary Smith
===============================================================================
 
... Bill Gates and his search for undocumented Windows 3.1 code...
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4980                                         Date: 09-12-93  20:44
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #14
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
25) , . ...

DIR,    Using a comma IMMEDIATELY after DIR, shows ALL files, including
        the HIDDEN ones.

        EXAMPLE: DIR,

                              Willem van den Broek

        This appears only to work with version 5.  I tried it with 3.30,
        and it didn't display either IO.SYS, MSDOS.SYS (both with S, H
        and R attribs) or a test file with A and H attribs.

        With version 5 it displayed the test file with H and A, but would
        not display IO.SYS or MSDOS.SYS with S, H and R.  This doesn't
        surprise me actually, since S alone (without H) will prevent
        inclusion of a file in a normal DIR.

        I didn't try version 4.

                              Mitch Ames

        Interesting: it does for me (display DOS5 IO.SYS and MSDOS.SYS):
        However, 4DOS does not do it:

                              Dennis Mccunney

        It was pointed out in the 4DOS echo, and there were people
        who said it didn't work for them.   But, on my machine
        running straight dos6, it works! DIR, (dir comma) in my C:\
        shows all files including hidden and system.

                              Bill George

DIR..   With DOS 6.0 you can get a directory of -all- files (hidden,
        system, etc.) with this command.

        It was in a PC/Mag. or PC/Comp. issue not too long ago.

                              Andrew Barnhardt

        Have you noticed also how DIR... only displays directories, not
        files?

                              Gary Marden

        That's pretty slick. I tried DIR.. and got the parent 
        directory. DIR... got the current directory subdirs only.

                              Bill George

        Works for any level of directories. ".." will go to the previous
        directory as with pure DOS, "..." will go to the directory before
        the previous and so on.

                              Ng Cheng Kiang

        In DOS 5.0 it displays directories and files with no extensions.
        I tried "DIR ...", "DIR...", and "DIR ....".  They all behave
        the same way.

                              Gary Smith

        With DOS 5.0 and NDOS 6.0 DIR... gives me a list of
        subdirectories off of the root and a list of all files in
        the root directory, regardless of the file extension.
        It will yield this result regardless of what directory / 
        subdirectory I am in at the time the command is issued.

                              Gary Cooper
        
        COMMAND.COM generally seems to ignore excess characters.  Try
        copying something the AIRPLANES.PLAN, for example, and see what
        happens.

                              Gary Smith

        While I was playing around with "dir ..." and trying to see how
        it parses to showing all extensionless entities in the current
        directory, I noticed that DIR doesn't care if a specified directory
        structure exists or not, as long as the overall structure points
        back to something that does exist, i.e.

            "dir \thisdirdoesnotexist\.."

        will ignore the garbage and show the root directory.  If
        c:\bat exists, then

            "dir c:\bat\thisdirdoesnotexist\nordoesthisone\..\.."

        will show the c:\bat directory.

        Again, absolutely useless as far as i can tell <g>, but interesting.

        BTW, has anybody solved the "dir ..." mystery yet?  I also noticed
        "dir \..." works while "dir \bat\..." fails (any explicitly specified
        directory other than the root generates an "invalid directory"
        message).

                              Paul Leonard
===============================================================================
 
... WOMAN.ZIP....Great program, no documentation! 
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4981                                         Date: 09-12-93  20:48
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #15
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
26) COPY. A:

    The use of a decimal point IMMEDIATELY after some DOS statements,
    will replace *.*

    EXAMPLES: DEL.       (erase all files in current directory)
              COPY. A:   (copy all files in current directory to A:)

    There may be more statements with which it works, but I haven't
    tried them yet.

                              Willem van den Broek

    "." means the current directory, and Command.com will assume that
    \directory implies \directory\*.* for most commands where a
    filename(s) should be specified, eg:

    DIR \ is the same as DIR \*.*
    COPY \FRED is the same as COPY \FRED\*.*
    COPY. A:\ is the same as COPY .\*.* A:\ which is the same as COPY *.* A:\
    DEL. is the same as DEL .\*.* which is the same as DEL *.*

                              Mitch Ames

    Have you noticed also how DIR ... only displays directories, not files?

                              Gary Marden

    In DOS 5.0 it displays directories and files with no extensions.
    I tried "DIR ...", "DIR...", and "DIR ....".  They all behave
    the same way.

                              Gary Smith

    Another good thing is you can travel from directories to
    directories without typing "CD".  Just type the directory name
    followed by a backslash '\'.

    Example: To go from C:\BATCH to C:\WP51, you type "\wp51\".
    That's it!  fast and easy.

                              Marc Y. Paulin

    If you are in the following directory :

        \WORD\FILES\LETTERS\APRIL

    And wanted to go to the directory \WORD\FILES, you'd normally 
    type two lines : 

         CD \
         CD WORD\FILES

    Or even the single line "CD \WORD\FILES" to combine the two 
    commands into one. There is a shorter way, simply type the 
    following : CD ..\..     You're there !

                              Andrew Barnhardt
           
    In DOS 5.0, it displays files and directories which have no extension.

                              Larry Kessler

    On this machine with DOS 5.0 and NDOS 6.0 DIR... gives me a list of
    subdirectories off of the root and a list of all files in the root
    directory, regardless of the file extension.  It will yield this result
    regardless of what directory/subdirectory I am in at the time the command
    is issued.

                              Gary Cooper

    Editor's Note:

    I admit that "features" in the last two MUFs may be documented
    (although obscure feature), the reason that it continues to be
    seen in the MUF list is because I believe that the ability to use
    the period immediately IE: COPY. is not documented.  What is
    documented is the fact that "." and ".." can be used to represent
    the current and parent directories respectively, and these will work
    with many applications which can handle directory names as arguments.
    In this case the "." could also be viewed as a replacement for "*.*"

===============================================================================
 
... Documentation - The worst part of programming.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4982                                         Date: 09-12-93  20:49
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #16
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
27) MULTIPLE DOS COMMANDS ON ONE LINE

    set &=%4&|set n$=%4|set m$=%3|set #=%2|set !=%0 
            /|\       /|\       /|\      /|\ 
             |_________|_________|________|_________________________Separators


    The separators (|) used in the line, are these doing anything
    other than separating commands?  Can this be used for entering multiple
    commands on any line in a batch file regardless of type of command?

                              Peter Joynson

    I believe you are right about this, but I think it pipes any output from
    the previous command to the next one (your example doesn't have any
    output.  For example: ECHO Y|ERASE *.*  This would pipe the Y to the
    command ERASE *.* so you wouldn't have to enter the Y for the "Are you
    sure" prompt.

                              Robert Hupf

    The | is a pipe symbol, well documented in your DOS manual.  (Read it
    before you read the rest of this message if you don't know about
    pipes already, otherwise the rest won't make sense.)  Pipes can be
    used to put multiple commands on a single line, provided that the
    first command does not write anything to StdOout which might cause a
    problem when read by the second command as StdIn. Also, it is assumed
    that you don't want to see the output of any but the last command,
    since each command's output will be piped to the next's input.  Note
    that in this case SET neither writes anything to StdOut nor reads
    StdIn.  Thirdly, you must have write access to the current drive, or
    %temp% if defined, since a pipe always creates a temporary file.  Eg
    this would not work if run from a write protected floppy (unless
    %temp% was defined), since DOS would fail to create the temporary
    files.

    Pipes create temporary files even if no actual data is sent to
    StdOut because Command effectively treats this:

            prog1 | prog2

    as something like this:

            prog1 > %temp%tempfile
            prog2 < %temp%tempfile
            del %temp%tempfile

    Even if prog1 doesn't create any output, at least one zero length
    file is created.  To demonstrate, try this

            set temp=
            set | dir

    I must say this beats the usual boring old "how do I echo a blank
    line in a batch file" etc.

                              Mitch Ames

===============================================================================
28) COM or EXE

    Also, have you noticed that 4DOS.COM (when viewed with LIST) begins
    with the letters "MZ"?  Isn't that the mark of a .EXE file?  Very
    interesting...

                              Thomas Smith

    It sure is, and that's an example of something else that may be
    a MUF.  DOS doesn't care whether the extension on an executable
    file is .COM or .EXE.  It looks at the beginning of the file and
    does the right thing according to what it finds.

                              Gary Smith

===============================================================================
 
... Real users don't read documentation.
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)

Ä Area: [ECHO] BATCH POWER PROG. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 4983                                         Date: 09-12-93  20:51
  From: Gary Cooper                                  Read: Yes    Replied: No 
    To: ALL                                          Mark:                     
  Subj: MUF Ver. 1.6 #17
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Editor's Note:

Technically the following information is NOT a MUF, but is included
here due to the fact that it may help save someone a lot of grief!
Similar to advising others not to use delayed cache writes and DOS
6.0's DoubleSpace.

29) CHKDSK

    Can you tell me the _date_ of the BAD CHKDSK?  I live in
    fear of it as I mainly work on other peoples computers an I
    have no way of telling if I will destroy their HD with a
    simple chkdsk command!

                              Wallace Mcgee

    The only problem with CHKDSK is with large partitions where DOS uses
    a 256-sector FAT. Specifically with partition sizes in the ranges of:

        127MB-129MB
        254MB-258MB
        508MB-516MB
        1018MB-1030MB
        2035MB-2061MB

    The date of the CHKDSK that has that problem is 04/09/91. The
    replacement being dated 11/11/91.

    UNDELETE has the same problem for the same reason.

    Bottom line is - if you don't have partitions in these size ranges -
    you don't have a problem.

    The corrected versions can be had by downloading from the MS BBS.
    Probably also available off of CompuServ. The file to look for is:
    PD0464.EXE. The phone number for the MS BBS is (206) 936-6735.

    Hope that helps you and others with the same question.

                              Steve Osterday

===============================================================================
30) DELTREE

    Another new, and potentially dangerous, feature of IBM DOS v6.01.
    If you were on drive C: and issued the command:

    DELTREE /Y \

    it would dutifully, and without stopping to ask for verification,
    delete your entire drive C:!

    (You can test it on a floppy with directories, subdirectories,
    and files scattered throughout ... just make sure you specify
    and/or are on that drive (disk) when issuing the above command).

                              Vernon Frazee
===============================================================================
Well folks, that's it for Vol.1 #6

Please forward any information about other Fabulous MUFs to Gary Cooper
in the FidoNet BatPower echo or at the addresses below.

Gary Cooper, Co-Sysop Programmer's Corner FidoNet 1:255/6.0
gary.cooper.@f6.n255.z1.fidonet.org

Thanks!  Till next time, we return you to your regularly scheduled
BatPower program . . .
 
... Damn the documentation, full speed ahead!
___ Blue Wave/QWK v2.12

-!- EzyQwk V1.02
 ! Origin: Programmer's Corner BBS, Saint John, NB  (v32/v42) (1:255/6)
