MFD.DOC

                               Instructions for
                        Meyer File/Directory Utilities
                          Release 1.21 (9 Mar 2006)

                            (c)1987-2006, E. Meyer


          Requires:  DOS 3.x or above (or equivalent under Windows)


 ================================  CONTENTS  =================================

     1. INTRODUCTION:  Description, Copyright, and Usage Policy.

     2. GENERAL INSTRUCTIONS for use under DOS or Windows

     3. DTA: Directory/Tree/Attributes

     4. DCMP: Directory Compare

     5. CPY: Copy/Move Files

     6. DLT: Delete Files

     7. GO: GoTo/Make Directory

     8. RND: Rename/Move Directory

     9: Setting Defaults with MFDSET

     Appendix: MFD121.NEW (News, update guide, version history)


 =============================  1. INTRODUCTION  =============================

     The MFD (Meyer File/Directory) Utilities are a collection of six small,
 efficient DOS programs that offer more powerful and convenient management of
 files and directories than standard DOS commands:

     * find or operate on files by name, time/date, attributes, or size
     * compactly display a full range of file and directory information
     * change file or directory names, attributes, or time/date
     * compare directory contents, showing different files and versions
     * copy, move, back up (archive), and delete files efficiently
     * find, create, or move directories quickly and easily
     * customize many default options

 What's more, to get all these features, you don't need to change or replace
 any part of standard DOS, or load a clumsy menu shell.  Just put the MFD
 programs in a directory on your DOS PATH, and you can take advantage of their
 command-line power whenever you like.

     The various MFD Utilities originated separately over many years and
 through many versions of MSDOS, and have been updated to work with the DOS
 interface of Windows 95/98 and NT/XP also.  They always shared a certain
 consistency of design that makes them easy to learn and use, and this has
 been emphasized by presenting them as a coherent group, with the MFDSET
 program for easy setup.  Of course DOS itself has evolved over the years, and
 gradually caught up with some abilities of MFD: MSDOS 6 introduced the
 command to MOVE a file, and Windows DOS allows REN to rename a directory,
 where once supplementary utilities like MFD's CPY /R  or RND were required.
 But whatever version(s) of DOS or Windows you're using, many of the
 distinctive features of the MFD programs will prove useful.

     The author, Eric Meyer, has programmed in languages from APL to Z80; his
 other software for IBM PC compatibles includes the VDE editor/word processor
 and ZIP File Transfer program, as well as numerous smaller utilities.  He
 firmly believes that simple, effective software should remain easily
 available to users of all kinds of personal computers.


                            FILES YOU SHOULD HAVE

     Be sure you have all the files that should be included in this package:

 MFD.DOC      - These instructions for the MFD Utilities.
 MFDxx.NEW    - Latest news and update information for this release of MFD.
 CPY.COM, DCMP.COM, DLT.COM, DTA.COM, GO.COM, RND.COM  - The six utilities.
 MFDSET.COM   - The default option setting utility.
 FILE_ID.DIZ  - Standardized software description for online libraries.


                         COPYRIGHT AND USAGE POLICY

             The MFD Utilities and documentation are copyright
         (c)1987-2006 Eric Meyer, all rights reserved.  They may be
         freely used and distributed, but only in complete and
         unmodified form.

             Software libraries are granted permission to charge up
         to US $6 for providing a copy to customers, or up to $30 if
         part of a CDROM collection.  MFD may not otherwise be sold
         for profit without written permission of the author; please
         write for terms.

             DISCLAIMER OF WARRANTY:  This software is provided at
         no charge, and you undertake to use it at your own risk.
         The author does not warrant its suitability for any partic-
         ular purpose, and assumes no liability for damages of any
         kind resulting from its use.

     The correct description of MFD is "copyrighted freeware".  "Free" means
 only that payment is not required for its use; this material is not to be
 considered in the public domain.  For suggestions on where to find updates
 online, see the MFDxx.NEW file.  As of December 2002, shareware support is no
 longer offered, and any further development will likely be limited to minor
 fixes.

                Eric Meyer
              3045 4th Street
        Boulder, Colorado  80304  USA         apteryx@compuserve.com

Go back to top of page

 =======================  2. General Instructions  ===========================

     These instructions are intended to explain the features and operation of
 the MFD Utilities.  This is not a beginner's computer tutorial; basic
 familiarity with PCs, MSDOS, disk files, and so on is assumed.  If you
 encounter something you don't understand, you can consult your system
 manuals, browse in a good bookstore or online, or just try it (on files you
 have a backup copy of!) and see what happens.

     You can use the MFD utilities as easily as standard DOS commands, just by
 typing their names, if you put them in a directory on your DOS search PATH.
 (Use PATH to view it, or SET PATH= to modify it.)  You may also rename them
 at your convenience (for example, calling DTA simply "D.COM").


                             DOS COMMAND SYNTAX

     After the MFD program name, you can always type "/?" for online help.
 Otherwise, the utilities generally expect one or more DOS directory and/or
 file names as arguments; optionally, these may be followed by a slash "/" and
 various option letters, with further slashes or spaces optional.  They allow
 redirection of input and (monochrome) output in the standard DOS manner with
 "|", "<", and ">", and return error codes that can be tested in batch files.
 They parse arguments in the standard DOS 3.x-6.x manner: for example, names
 are interpreted in capitalized 8.3-character format, and "*" alone as "*."
 (unlike Windows which parses "*" as "*.*", and also accepts new forms like
 "*X" or "*X*").

     Several MFD programs (CPY, DLT, DTA) offer a new command-line feature of
 their own: a LIST of several different filespecs separated by commas (or
 perhaps also spaces), to be processed together as a single argument.  In such
 a case, later filespecs in the list (whose paths don't begin entirely anew)
 inherit the drive/path of earlier ones, rather than defaulting again to the
 current directory; thus in

                   C:\> DLT WORK\FILE1,FILE2,BAK\FILE3

 the files to be deleted are C:\WORK\FILE1, C:\WORK\FILE2, C:\WORK\BAK\FILE3.
 This also applies to a list of sources for CPY, and a list of items to be
 changed with DTA /C or /@.  (There is no path inheritance for subsequent
 arguments not part of such a list: the CPY destination, or the separate
 arguments of RND, DCMP, and DTA used normally.)


                           USING DOS UNDER WINDOWS

     Windows 95/98 and NT/XP still allow the use of DOS software as well; in
 fact, Windows can serve rather well as a multitasking DOS environment.  But
 the underlying file system is different, involving Long File Names that old-
 style DOS software knows nothing about.  For compatibility, directories and
 files are also given "short" names in the standard format that classic DOS
 programs can see and use:

       "C:\My Documents\Chapter One.doc" = C:\MYDOCU~1\CHAPTE~1.DOC

     While the MFD utilities still expect short DOS filenames on the command
 line, they have been revised internally to recognize and preserve any
 existing LFNs.  With older DOS software that hasn't been (including MFD
 before release 1.2), the most serious Windows-compatibility problem is that
 copying or moving items that have LFNs by their "short" names can lose their
 long ones.  You should always ensure either that DOS programs have been
 rewritten to handle LFNs, or that none of the specific files or directories
 targeted actually have LFNs to lose.  (Note: any program, even Windows DOS
 commands themselves, can still lose LFNs if used in MSDOS mode without
 Windows 95/98 loaded.)

     A second such problem is that under Windows, even "short" names (with
 their full path) are allowed to exceed the old 66-character limit of DOS;
 given such deeply nested directories, an older DOS program may fail with an
 unexpected error, become confused, or crash.  The MFD utilities can handle
 these longer paths.

     Yet a third oddity regarding short aliases should be mentioned: when
 files with similar LFNs have to be given short names ending in ~2, ~3, etc to
 distinguish them, those numbers are merely assigned according to the order in
 which files were created in each directory.  If you happen to copy
 CHAPTE~1.DOC and CHAPTE~2.DOC to another directory in the reverse order, the
 one known as CHAPTE~2.DOC in the first directory will become CHAPTE~1.DOC in
 the second!  Older DOS programs would be misled as to which file was a
 revision of which, but the DCMP and CPY utilities now judge this correctly by
 the long filename.  (This is why DCMP might show "+LONGNA~2" versus
 "-LONGNA~1", or list "LONGNA~1" as both a common and a different file.)

     MFD's retention of classic DOS command syntax can offer a useful
 alternative to the revised Windows approach, and makes it easier to continue
 using pure DOS 8.3-format names where appropriate.  They're easier to type
 than LFNs, which are more suited to point-&-shoot operation; they're more
 efficient, especially for directory names, as they don't require Windows to
 fuss with short aliases; and they can help distinguish files associated with
 DOS software from Windows files.  And the Windows commands are always there
 too, if you need to work with LFNs directly.

Go back to top of page

 ====================  3. DTA: Directory/Tree/Attributes  ====================

     DTA is a versatile file directory utility, a convenient alternative to
 DOS's DIR, TREE, ATTRIB commands that can also find and identify files.  Its
 output can be extensively customized for various purposes from archival
 printouts or labels to everyday use.  Despite its small size, DTA offers many
 features: it can display a directory tree; search an entire tree for files;
 view initial text to identify files; select by attributes, time/date, or
 size; change attributes or time/date; or display several groups of files, or
 all except certain files.


                                    USAGE

     C> DTA {filespec1} {{,}filespec2...} {/options}         "{}"=optional

     Each "filespec" may include a drive, path, or wildcards.  Either spaces
 or commas may separate multiple filespecs; if these are a list to be acted
 upon by /C or /@, then they inherit the drive/path of previous ones (and
 otherwise, they don't).  The filename, if omitted, defaults to "*.*"; a
 directory name alone expands to "DIRNAME\*.*" (unless /D is used).

     While DTA is scanning through directories for a /T display or /G search,
 or once its display has paused at the end of the screen for a keystroke, you
 can press ^C to abort the operation if you wish.

     Output can be redirected to a file or device in the standard DOS manner
 ">NAME", but not with color output; you must select monochrome (/M).
 Pagination (/P) should also be disabled, to avoid having to press a key at a
 prompt you won't see.


                           INTERPRETING THE DISPLAY

     FILE SIZE and DISK SPACE are seldom useful to specify to the exact byte,
 as the DOS DIR command does.  Instead, DTA displays sizes rounded up to the
 nearest kilobyte (1k is 1024 bytes) or tenth of a megabyte (1m is 1024k, or
 1,048,576 bytes).  Directories (if listed) are identified by "Dir" in the
 file size column, their contents not included in the summary totals.  The
 "total" is simply the sum of the individual file sizes shown.  The "used"
 amount is the physical space actually dedicated to those files on the disk,
 which is generally larger due to the allocation of disk space in discrete
 units (clusters) of media-dependent size, ranging from as little as 128 bytes
 on a RAMdisk or 512 on a diskette, to 16k or more on a large hard disk; the
 same 500-byte file may "use" 1k or 32k, depending on the drive.  Used and
 free space for the entire drive may also be shown, on smaller media where
 such cautionary information is relevant.

     ATTRIBUTES, when displayed, show a letter ("A,R,H,S") if set, or a dot
 "." if clear.  DOS sets the "A"rchive attribute automatically when files are
 modified, in case you want to use software (like the MFD utility CPY, or DOS
 XCOPY) that backs just those files up to another drive and clears the
 attribute again.  The "R"ead-only attribute prevents a file from being
 changed or deleted, though it can be read and copied.  The "H"idden and
 "S"ystem attributes both exclude items from normal searches, making them
 inaccessible by ordinary DOS file commands.  But DTA can show and operate on
 them, and does so by default (unless you use the options "/hs").

     TIME/DATE, when displayed, appear in the appropriate format for your DOS
 country setting, unless you've customized DTA.COM or used a different entry
 format (US, European, or Numeric) with the /B, /L, or /@ options.  The date
 of a volume is when the disk was labeled; of a directory, when created; of a
 file, when last modified.  Years display as two digits with "80-99" meaning
 19xx, and "00-79", 20xx.  (MSDOS dates begin at 1980.)

     FILE TEXT, when displayed, appears as one or several lines in an
 abbreviated format with many duplicate or non-alphabetic characters filtered
 out.  If the initial part of a file contains a sizable proportion of binary
 (non-text) data, DTA won't attempt to display it, reporting "Bin" instead.


                                   OPTIONS

     By default, DTA displays a list of all specified files, along with their
 sizes and some disk space information.  However, many options are available.

   These scan an entire drive, not just a single directory:
       /T - display TREE, starting at specified (or current) directory
       /G - GLOBAL search for file(s) throughout the drive, starting at
                  specified (or root) directory

   These affect the information displayed:
       /F - FULL listing: for files, show attributes, time/date, and LFN also;
                  for tree/global search, show file size information also;
                  for text view, show a few more lines of text
       /W - WIDE listing (like DIR /W), five columns of filenames only
       /V - VIEW initial text of files listed

   These affect the format:
       /O - ORDER: /O - by row (horizontally) instead of column (vertically)
                  /O2 - by file extension, i.e. ".COM"
                  /O3 - by file size (to nearest K; largest first)
                  /O4 - by file date (latest first)
       /M - use MONOCHROME (MSDOS) output instead of color
       /P - PAUSE for keystroke after each full screen

   These determine which items are selected:
       /X - EXCEPT: select only items OTHER than those specified
       /D - DIRECTORIES instead of files
       /U - UNIVERSAL listing, both directories and files
       /B - files dated BEFORE specified date,time
       /L - files dated LATER than specified date,time
       /K - select files by specified size in K ("+"=greater, "-"=less)
       /A,H,R,S - only items WITH the specified attributes
       /a,h,r,s - only items WITHOUT these attributes

   These change the DOS directory information for items selected:
       /@ - set timestamp on items to following date,time
       /C - CHANGE attributes of items to the following settings

     Given an argument without wildcards, the single item displays with full
 information (as if you had used /F) since there is room.  Unlike DOS DIR, DTA
 skips the omnipresent entries ".." or ".", even if /U or /D is used.  Note
 how using the /D option to act on directories themselves suppresses their
 usual automatic expansion into a filespec "\*.*":
     DTA \DIRNAM          shows all its FILES, same as DTA \DIRNAM\*.*
     DTA \DIRNAM /D       shows directory \DIRNAM ITSELF
     DTA \DIRNAM\*.* /D   shows all SUBDIRECTORIES in it

     When more items than will fit on a single line are displayed, DTA
 defaults to vertical (column) ordering, alphabetically by name.  The order
 option /O alone gives horizontal (row) order instead.  /O2, 3, or 4 will sort
 first by file extension (i.e. ".COM"), or by file size, or by date, rather
 than name.  (Secondary sorting remains by name.)  The way to remember /O2-4
 is that the extension, size, and date are the 2nd, 3rd, and 4th things listed
 in a full DTA display, after the name.  You can also use /O1 to revert to
 name order if you have another installed as your default.

     The view option /V is useful when file names alone don't remind you
 exactly what they contain; it produces a single column of output, with a
 compact display (one line, or several if combined with /F) of any initial
 text of each file that appears readable.  Note that some documents created by
 word processors actually contain lots of binary data, and may not display;
 while program and data files may also happen to contain displayable text.

     DTA includes hidden and system items by default: the /H,S options don't
 mean include those items also, but those only; to exclude them, use /h,s.
 All the file attribute options /A,R,H,S are case-sensitive (uppercase=set,
 lower=clear) and position-sensitive.  WITHOUT or BEFORE the change option /C,
 they SELECT the items to be listed or acted upon; AFTER /C, they represent
 CHANGES to be made to the selected items.  The /C option can incidentally be
 used alone (with NO following attributes to change) simply to cause
 attributes to display instead of file sizes.

     The /K option should be followed by a number from 0 to 999; files of that
 many kilobytes only will be selected.  Add a "-" after the size to include
 smaller files as well, or a "+" to include larger ones: for example, "/K100+"
 gives all files of 100k or more.

     The /B,/L,/@ options may be followed by a date and time, separated by a
 comma (or either alone).  If omitted, the date defaults to today, the time to
 0 hours (12am) -- except that /@ alone means today, NOW.  The year is entered
 as two digits only; 80-99 are taken as 19xx, 00-79 as 20xx.  DTA recognizes
 U.S., European, or Numeric formats by the punctuation used to enter them:

       U.S.(M/D/Y,H:MMa-p)    Euro (D.M.Y,H:MM)     Num (Y-M-D,HHMM)
          3/25/90,1:45p    =    25.3.90,13:45    =    90-3-25,1345

 /B and /L may be combined to specify an interval of time.  For additional
 convenience, you can specify a relative time instead (so many days or hours
 ago) by using a "-" sign: "-3" means 3 days ago, "-,2" 2 hours ago.  The null
 date "0/0/00" alone may be entered to (re)set a blank timestamp.

     Most options can be combined, for great power and selectivity.  However,
 options /T,G,X don't allow multiple filename arguments.  If you specify
 certain contradictory selection or formatting options like /U and /D, the
 later one may override the earlier one; other combinations of options
 (especially involving /T or /G) simply aren't supported and will produce an
 error message.  Note also that if no directory is specified, a global search
 (/G) starts by default at the root, for the entire drive; if you want it to
 search only from the current directory down, use "DTA . /G".

     CAUTION: the /@ and /C options actually CHANGE the DOS timestamp and
 attributes for files!  Timestamps provide valuable information about the age
 and revision of a file, and shouldn't be changed without good reason; some
 software (especially Windows) expects its files to have certain attributes.
 If the DOS FASTOPEN feature is in use, /@ may fail to change the timestamp
 of a file.  /C can change the attributes of directories as well as files, but
 /@ cannot change a directory's creation time.  /@ always sets seconds to 00.


                                   EXAMPLES
     FILES and DIRECTORIES...

 C> dta a:\*.doc a:\*.txt /v
   Show all files *.DOC and *.TXT in the root directory on A:, with text view

 C> dta a:\*.sys /xf
   Show all files EXCEPT *.SYS, with "full" display: attribs, time/date, etc

 C> dta \work /uo
   Show all files AND directories in C:\WORK, ordered by row

 C> dta /d
   Show all subdirectories in the current directory

     SIZES and TIMESTAMPS...

 C> dta d: e: /k0
   Show only empty (0k) files in the current directory on drives D: and E:

 C> dta \work /l-2
   Show only files in directory C:\WORK dated in the past two days

 C> dta /b9/1/89
   Show only files in current directory dated before 9/1/89

 C> dta *.doc /l/b1700
   Show only files *.DOC dated today before 1700 hrs (5:00pm)

 C> dta log /@1.9.89,13:20
   Change the timestamp of file C:LOG to 1 Sept 1989, 13:20 (1:20pm)

     ATTRIBUTES...

 C> dta /cp
   Show all files *.* with their attributes, with no end-of-screen pause

 C> dta *.doc /A
   Show only files *.DOC in current directory with the Archive attribute

 C> dta a: /SH
   Show only files in current directory on A: which are System and Hidden

 C> dta a: /Hca
   Select only Hidden files on A: and clear their Archive attribute

     TREE and GLOBAL SEARCH...

 C> dta \work /tf
   Show the directory tree starting from C:\WORK, including size information

 C> dta /gl
   Locate all files on drive C: that have been modified today

 C> dta *.bak /gk100+f
   Find all files *.BAK of 100k or larger on drive C:, and show total sizes


                                    ERRORS

 0 (such) items "NAME" - nothing exists by that NAME (or nothing matches
                          other criteria specified: attributes, date, size)
      Invalid argument - incorrect or incomplete argument, or empty drive
         Out of memory - not enough free memory to run DTA, or too many items
                          to list (try a more restrictive filespec)
               Aborted - user pressed ^C

     DTA sets the DOS return code, so that batch files can test the ERRORLEVEL
 to determine subsequent action.  Zero indicates a normal exit.

          1 = invalid argument
          2 = no items found
          4 = out of memory
        128 = user abort

Go back to top of page

 ========================  4. DCMP: Directory Compare  =======================

     DCMP is a small, fast utility that allows you to reconcile two disks or
 directories with similar contents: to detect differing versions of files, or
 to see which files are in one directory but not the other.  It's much more
 convenient than running two DIR commands and trying to compare the listings
 yourself.

                                    USAGE

     C> DCMP filespec1 {filespec2} {/options}            "{}"=optional

     Each "filespec" may include a drive, path, or wildcards.  If the filename
 is omitted from the first argument, "*.*" is assumed; if from the second, the
 same as the first is assumed.

     DCMP normally gives three alphabetical listings of files

              1. common to both directories;
              2. present in the first but not the second;
              3. present in the second but not the first.

 For each list, it reports the number of files and their total size in
 kilobytes (1k = 1024 bytes).  Differing versions of files (same name, but
 different timestamps) will appear in the lists of DIFFERENT files, the newer
 version flagged with a "+" sign before the filename, the older with a "-".
 For compactness and practicality, DCMP displays only short names.

     While running, DCMP ignores any keys you may press except while paused at
 the end of the page, when you can use ^C to abort if desired.  Output can be
 redirected to a file or device in the standard DOS manner ">NAME", but not
 with color output; you must select monochrome (/M).


                                   OPTIONS

   These restrict the display contents:
              /E = files EXISTING in both directories only
              /N = files NOT existing in both directories only
              /C = files CHANGED only
              /S = SUMMARY of number of files only

   These control operation:
              /H = include HIDDEN and System items also
              /P = PAUSE display when screen full
              /M = use MONOCHROME (MSDOS) output instead of color
              /2 = swap TWO disks in the same drive for comparison

     The /E option gives only the first listing of the full display (common
 files).  /N gives only the second and third (differences).  /C gives a single
 more restricted listing, of modified versions of files with the same name
 only.  These three options are mutually exclusive.  The /S option can be
 combined with any other, to suppress the filename display and show only
 summary data (number and size of files).

     The /2 option allows you to compare two floppy disks directly, even if
 you have only one drive of that size.  DCMP will read the first disk, then
 prompt you to insert the second.


                                   EXAMPLES
 C> dcmp a:
   Compare current directories of drives A: and C:

 C> dcmp a:\ a:\ /2
   Compare root directories of two floppies alternating in drive A:

 C> dcmp a:\work /c
   Show files changed between directory A:\WORK and C: (current)

 C> dcmp \prg\*.asm a: /ns
   Summarize files C:\PRG\*.ASM not among A:*.ASM, and vice versa


                                    ERRORS

   Invalid argument - incorrect or incomplete argument, or empty drive
      Out of memory - not enough free memory to run DCMP, or too many files
                        to compare (try a more restrictive filespec)

     DCMP sets the DOS return code, so that batch files can test the
 ERRORLEVEL to determine subsequent action.  Zero indicates a normal exit.
          1 = invalid argument
          2 = no items found
          4 = out of memory

Go back to top of page

 =========================  5. CPY: Copy/Move Files  =========================

     CPY is a small, fast file copy utility.  Its features are geared toward
 the task of backing up (archiving) files, but it can also simplify ordinary
 file copying, moving, and renaming.  CPY can copy different groups of files
 at once, or all except certain files; back up files incrementally using
 either time/date or archive attribute; copy only files not yet in the
 destination directory; prompt to confirm each file individually or all
 together; move files from one directory to another; or copy or rename a group
 of files without unintended conflicts.  CPY uses large buffers for speed, and
 its many command-line options allow you to do as much as possible in a single
 command.

                                    USAGE

     C> CPY source{,source2,...} {dest} {/options}         "{}"=optional

     The source and destination filespecs may each contain a path and/or
 wildcards; the source may also be a list of multiple filespecs, delimited
 with commas (not spaces, which separate source from destination!).  Multiple
 sources inherit the drive/path of previous ones.  If the destination is not
 completely specified, its directory defaults to the current one, and its
 filename to the same as the source.

     While copying a group of files, CPY lists each name as it processes them
 in alphabetical order; you may abort at any time by pressing ^C.  If the
 destination names are different, both are shown: OLDFILE.NAM -> NEWFILE.NAM.

     Unlike DOS COPY, CPY will copy 0k files.  Device names (AUX, CON, NUL,
 etc) cannot be used with CPY, which operates only on disk files; use COPY
 instead for device input/output.

     Under Windows, CPY preserves long filenames when processing files with
 wildcards.  If you want to copy a single long-named file, be sure NOT to
 repeat a (short) name as the destination: for example, type
                        CPY \OLDDIR\PROPOS~1 \NEWDIR
 rather than "\NEWDIR\PROPOS~1" again, which would make "PROPOS~1" the (full)
 new name of the copy.

                                   OPTIONS

 /A -  copy only files with the ARCHIVE attribute (see "Incremental Backup"
      below for further explanation)

 /! -  MARK each original file copied by clearing its archive attribute
      (normally used together with /A)

 /B -  copy only files dated BEFORE specified date/time (see formats below;
      defaults are today, 0 hours)

 /C -  list all the files implicitly selected by wildcards (*,?) or option
      /X and CONFIRM "y/n?" before processing them all

 /E -  copy only files previously EXISTING on the destination directory
      (normally used together with /T,A,M for incremental backup)

 /H -  copy HIDDEN and System files too, along with all the rest (they are
      normally ignored)

 /L -  copy only files dated LATER than specified date/time (see formats
      below; defaults are today, 0 hours)

 /M -  use MONOCHROME (MSDOS) output instead of color (typically used to
      enable redirected output to a file or NUL)

 /N -  copy only files NOT previously existing in the destination directory
      (reconciles contents without redundant copying)

 /P -  PROMPT "y/n?" for each file to be processed: press "Y" to copy the
      file, or "N" to skip it

 /R -  RENAME or MOVE files: renaming, if the destination directory is the
      same; moving, if different

 /T -  overwrite existing destination files only if the source copy has
      a more recent TIMESTAMP

 /W -  WRITE over or delete Read-only files if necessary (normally, this
      would cause a DOS write error)

 /X -  copy all files (*.*) EXCEPT those specified

     The /C,H,M,P,W options are quite straightforward; detailed explanations
 of the use of others follow.

                         INCREMENTAL BACKUP: /A,!,E,T

     It's important to maintain backup copies of valuable data, but this can
 be a tedious task.  Fortunately, you don't need to remember exactly which
 files you've worked on recently; there are two automatic ways to back up by
 selecting and copying just those files that need it ("incremental backup").

 (1) The ARCHIVE attribute

     MSDOS maintains an attribute called Archive in directory entries.
 Whenever a file is created or modified, this attribute is set.  Consequently,
 if this attribute was cleared in the past (when you last did a backup), the
 files which now have it set again are those that have changed, and need to be
 backed up now.
     CPY can copy just those modified files, and clear their attribute again
 to indicate they have been archived.  So all you have to type each time you
 want to back up the contents of a directory to another disk D: is:
                          CPY *.* D: /A!
 (The /A option alone would copy those same files, but without resetting their
 attributes.)  The /E option can also be used in order to archive only a
 certain subset of those files, for example to back up the contents of a large
 directory onto multiple diskettes.
     Obviously, the first time you start using this backup procedure, every
 file you've ever created is marked with the Archive attribute and needs to be
 copied, so the operation may take awhile.  If you ever want to exclude
 certain files from the process, or include files that have already been
 archived, you can set or clear the Archive attribute yourself, using the MFD
 utility DTA (or DOS ATTRIB).
     This method of archiving generally makes more sense when used with a
 dedicated mass backup device, such as a tape drive or removable hard disk.

 (2) The TIMESTAMP

     If your computer's clock maintains the correct time and date, CPY can use
 the DOS file timestamp to determine whether one copy of a file has been
 modified more recently than another.  (If you don't have a battery-powered
 clock, add the TIME and DATE commands to AUTOEXEC.BAT; the trouble of
 entering the correct values each time you reboot is easily worth it.)  Thus,
 you can also back up files by typing:

                          CPY *.* D: /T

 Files that already exist on D: will only be copied (overwritten) if the
 source copy is more recent.  In addition, all files that don't already exist
 on the destination directory will be copied, so D: will become a full backup
 for the current directory.  If you want to avoid this, add the /E option:

                          CPY *.* D: /ET

 Now, only files already existing on D: will be updated.  This allows D: to be
 the backup for just a certain subset of files in the current directory (which
 can therefore be backed up on multiple diskettes).
     This method is often simpler to use for smaller tasks or with floppy
 disks, especially when you work on two computers and regularly reconcile
 their contents, rather than having one device that's always the source and
 another the backup.

                             COPYING BY AGE: /B,L

     If your computer's clock maintains the correct time and date, you can
 tell when each file was last modified.  With CPY's /B and /L options, you can
 choose to copy only files dated before or later than a given date or time (or
 combined, within an interval of time).  Each option letter may be followed by
 a date and time separated by a comma (or either alone).  If omitted, the date
 defaults to today, the time to 0 hours (12am).  The year is entered as two
 digits only; 80-99 are taken as 19xx, 00-79 as 20xx.  CPY recognizes U.S.,
 European, or Numeric formats by the punctuation used to enter them:

       U.S.(M/D/Y,H:MMa-p)    Euro (D.M.Y,H:MM)     Num (Y-M-D,HHMM)
          3/25/90,1:45p    =    25.3.90,13:45    =    90-3-25,1345

 /B and /L may be combined to specify an interval of time.  For additional
 convenience, you can specify a relative time instead (so many days or hours
 ago) by using a "-" sign: "-3" means 3 days ago, "-,2" 2 hours ago.

 Examples:    /L                  anytime today (later than today, 0:00)
              /B12:45p            before 12:45 PM today
              /L25.3.90,13:00     later than 25 March 1990, 1 PM
              /L89-12-1 /B90-1-1  during December 1989
              /L-,1               in the last hour
              /B-7                before one week ago

                        SELECTING AND EXCLUDING: /N,X

     /N can be useful for reconciling two directories in a simple situation
 where different versions of the same file aren't an issue; it copies only
 files that aren't already in the destination directory.  This can also be
 very handy if something interrupts the copying of a group of files; after
 solving the problem, you can pick up right where you left off by reissuing
 the same CPY command, with the /N option.

     /X will copy only files that do NOT match the name(s) given.  It applies
 only to the name, and does not negate any other selection criteria (/B,L,E
 etc).  All source names must be in the same directory.  Examples:

       CPY *.COM,*.EXE B: /N    copy all .COM and .EXE files not already on B:
       CPY *.BAK A: /X          copy all files except *.BAK to A:

                           MOVING OR RENAMING: /R

     The /R option has powerful moving and renaming features, depending on the
 circumstances of its use.  If the destination is another drive, files are
 copied and then the originals are deleted.  If it's another directory on the
 same drive, files are quickly reassigned to the new directory.  Within the
 same directory, files are simply renamed.  And of course, /R can be combined
 with other options too.  Examples:

       CPY B: A: /R            move all files from drive B: to A:
       CPY *.DOC \NEW /RL      move all files *.DOC modified today to \NEW
       CPY *,*.DOC *.TXT /R    rename all blank and DOC filetypes to TXT

                        SAFE MASS COPYING AND RENAMING

     CPY has a unique feature that allows you operate safely on groups of
 files even when it's difficult to foresee results that depend on the specific
 filenames encountered.  For example: DOS commands like (X)COPY and REN can
 safely be used to rename a group of files, or copy them to new names, only
 when the wildcards match exactly, as in:

                          COPY A:*.DOC B:*.BAK

 There is a one-to-one correspondence of names here, ANY.DOC to ANY.BAK, and
 no possible confusion as to the result.  But what if instead you tried to
 create backup copies of ALL files with the command:

                          COPY A:*.* B:*.BAK

 DOS will attempt to do this also, but you might not get the result you
 intended.  If there are (say) files A:INTRO.DOC and INTRO.NDX, DOS will copy
 them both to B:INTRO.BAK, one "copy" overwriting the other -- and without any
 warning.  CPY won't let that happen.  If you use CPY instead:

                          CPY A:*.* B:*.BAK

 it will check the output names and catch the error before processing any
 files.  In such a situation CPY gives the message "Conflict..." and skips the
 problematic group of files, alerting you to the need to work out a different
 approach that won't risk losing data.  (If the /P option was used, CPY will
 give the warning but continue prompting by individual files.)

     Similarly, CPY will avoid situations where a file would be copied onto
 itself and destroyed (warning "Overwrite") or an illegal filename created
 ("Illegal"), and skip the offending source group.  In such cases, DOS
 commands just quit with an error message midway through processing a group of
 files, leaving a mess.  Instead, CPY protects you from unexpected problems
 due to wildcard ambiguities or command-line typos.

     Note that under Windows, CPY can't do partial renaming of long-named
 files using wildcards; if LFNs are encountered in such a renaming operation,
 a warning will be given ("LFN loss") and the file group skipped.


                                    ERRORS

     Overwrite... - a file would have been copied onto itself
      Conflict... - two sources would have copied to the same destination
       Illegal... - a file with an illegal name would have been constructed
      LFN loss... - files with LFNs can't be partially renamed

 Invalid argument - incorrect or incomplete argument, or empty drive
         Overflow - too many files to handle; try copying fewer at once
       Read error - DOS error opening or reading source file
      Write error - DOS error on output: full disk, read-only file, etc
    Out of memory - not enough free memory available to run CPY
          Aborted - user pressed ^C

     CPY sets the DOS return code, so that batch files can test the ERRORLEVEL
 to determine subsequent action.  Zero indicates a normal exit.
          1 = invalid argument
          2 = files skipped (overwrite/conflict/illegal/overflow)
          4 = out of memory
          8 = disk error (read/write)
        128 = user abort

Go back to top of page

 ===========================  6. DLT: Delete Files  ==========================

     DLT is an enhanced file deletion utility that can accomplish a lot with a
 single command.  Unlike the DOS DEL command, it can promptly delete lists or
 groups of files all at once, displaying the number deleted (and warning if
 read-only files were not).  In addition, options allow: filename display for
 user confirmation; deleting all except specified files; selecting files by
 time/date; and deleting hidden, system, or read-only files.

     * CAUTION! *  THIS PROGRAM DELETES FILES!  Be especially careful with
 mass deletion using wildcards (*,?), multiple directories, or the /B,L,X
 options, as you might make a mistake or fail to anticipate what's included.
 Recovering accidentally deleted files requires special utilities, even under
 Windows (files deleted in DOS don't go to the Recycle Bin).  While learning
 to use DLT, and whenever the least bit uncertain afterwards, ALWAYS use the
 /C option (or have it set as your default) to prompt for confirmation before
 deleting any group of files.


                                   USAGE

     C> DLT filespec1 {{,}filespec2,...} {/options}        "{}"=optional

     Each "filespec" may include a drive, path, or wildcards.  Either spaces
 or commas may separate multiple filespecs, which inherit the drive/path of
 previous ones.  For safety, unlike other MFD programs, DLT never assumes a
 default argument of "\*.*" following a directory name; this must be typed
 explicitly if intended.

     If no options are specified, you will simply see a report of the number
 of files deleted (and possibly the warning "others read-only", if option /R
 wasn't used.)

     While DLT is working, you can abort at any time by pressing ^C if
 desired, but some file(s) will already have been deleted.  Don't rely on this
 for a safety margin; if in doubt, use one of the confirmation options /C,P.

     Output can be redirected to a file or device in the standard DOS manner
 ">NAME", but not with color output; you must select monochrome (/M).


                                  OPTIONS

    /C -  Ask to CONFIRM deletion of file groups specified implicitly
    /Y -  YES: don't ask for confirmation, just delete files
    /P -  PROMPT individually, asking "y/n?" before deleting each file

    /H -  Delete HIDDEN and System files (normally not affected) also
    /R -  READ-ONLY files may be deleted (normally they won't be)

    /B -  Delete only files BEFORE specified date/time (see formats below)
    /L -  Delete only files dated LATER than specified date/time

    /X -  Delete all files EXCEPT those named

    /M -  Use MONOCHROME (MSDOS) output instead of color (typically used
            to enable redirected output to a file or NUL)

     When you use wildcards (?,*) or the /X option, you're specifying
 IMPLICITLY which files to delete.  To avoid potential surprises as to the
 actual files targeted, you can use /C to confirm the files to be deleted (or
 set it as a default).  If you have confirmation set by default and want to
 skip it occasionally, use /Y.  You can tell what your default is by the help
 message from DLT /?, which lists the option you would use to change it: /C if
 confirmation is not set, /Y instead if it is.  (Confirmation doesn't apply
 when individual filenames have been given EXPLICITLY.)  If you ever want to
 go through the list of target files one by one with full manual control, you
 can use /P for individual prompting; each file will be deleted or not, as you
 type "Y" or "N".

     If the /X option is used with multiple filespecs, all files must be in
 the same directory.  The /H,R options should only be used with great care,
 especially in directories containing critical system files.

     With the /B and /L options, you can choose to delete only files dated
 before or later than a given date or time (or combined, within an interval of
 time).  Each option letter may be followed by a date and time separated by a
 comma (or either alone).  If omitted, the date defaults to today, the time to
 0 hours (12am).  The year is entered as two digits only; 80-99 are taken as
 19xx, 00-79 as 20xx.  CPY recognizes U.S., European, or Numeric formats by
 the punctuation used to enter them:

       U.S.(M/D/Y,H:MMa-p)    Euro (D.M.Y,H:MM)     Num (Y-M-D,HHMM)
          3/25/90,1:45p    =    25.3.90,13:45    =    90-3-25,1345

 /B and /L may be combined to specify an interval of time.  For additional
 convenience, you can specify a relative time instead (so many days or hours
 ago) by using a "-" sign: "-3" means 3 days ago, "-,2" 2 hours ago.


                                   EXAMPLES
 C> dlt a:\old\*.*
   Delete all files in A:\OLD.  Note that you can't type just DLT A:\OLD,
   and that DLT won't ask for confirmation (even for *.*) unless /C is set!

 C> dlt *.bak read.me todo
   Delete all files C:*.BAK, plus C:READ.ME and C:TODO

 C> dlt b:\wrk\*.doc,apr\*.not
   Delete files B:\WRK\*.DOC and B:\WRK\APR\*.NOT

 C> dlt *.doc *.not /xp
   Delete files C:*.* except *.DOC and *.NOT, with individual prompts

 C> dlt a:\*.sys /c/rh
   List all files *.SYS (including hidden or read-only) in the root
   directory A:\, and ask you to confirm their deletion

 C> dlt *.* /l/b3:00p
   Delete files C:*.* dated today before 3:00pm

 C> dlt *.bak /b-30
   Delete files C:*.BAK more than 30 days old


                                    ERRORS

   Invalid argument - incorrect or incomplete argument, or empty drive
      Out of memory - not enough free memory available to run, or too many
                        files to delete (try a more restrictive filespec)
            Aborted - user pressed ^C
 (others read-only) - warning only, upon exit

     DLT sets the DOS return code, so that batch files can test the ERRORLEVEL
 to determine subsequent action.  Zero indicates a normal exit.

          1 = invalid argument
          4 = out of memory
          8 = disk error (couldn't delete read-only files)
        128 = user abort

Go back to top of page

 ========================  7. GO: GoTo/Make Directory  =======================

     GO is a convenient utility that allows you to find and move between (or
 create) directories more easily than the standard DOS commands CD, MD, TREE.
 Navigating subdirectories efficiently has always been a challenge; GO's
 approach offers a unique combination of features with speed, simplicity, ease
 of use, and small size.

     GO can quickly find an existing subdirectory name anywhere on a drive,
 without actually having to search for it, and even allows abbreviations.

       So, instead of:     C:\WORK> cd \wp\bus\acct99\billing
       All you type is:    C:\WORK> go bill

     It can create and/or move to a new directory, even on a different drive,
 in a single step.

       So,     C:\WORK> md d:\new         All you
     instead   C:\WORK> d:                type is:   C:\WORK> go d:\new
       of:     D:\> cd \new

     It can create multiple subdirectory levels at once, instead of one
 directory at a time from the top down.

       So,     C:\WORK> md \pers          All you
     instead   C:\WORK> md \pers\corr     type is:   C:\WORK> go \pers\corr
       of:     C:\WORK> cd \pers\corr
 (It can also just make sure that a directory exists, without going there.)


     It can establish aliases that will ALWAYS take you straight to a
 particular drive and directory without any confusion.

     It can display a drive's entire tree, with a cursor that you can move
 to select the directory you want to go to (Point-&-Shoot mode).


                                    USAGE

 C> GO { {d:}{path\}dirname {/M} | {d:}abbrev {/R} | alias | ? }    "{|}"=opt.

              To find a directory anywhere on a drive, use an
         abbreviation of its name.  To go instantly to a particular
         drive and directory, use an alias (see below).  To display
         all aliases currently set, type "GO ?".

              To create and select a new directory, include a PATH\
         before its name; GO will also create any elements of that
         path that don't already exist.

              To display the entire tree with a cursor for Point-&-
         Shoot selection of a directory, just type "GO" or "GO D:".

     GO normally avoids time-consuming disk scans; if it does need to perform
 one, "?" will display, and you can press ^C to abort if desired (for example,
 if you simply mistyped the name).


                                   OPTIONS

     /M -  Just MAKE a directory (or ensure it exists) without going there

     /R -  RESCAN the drive before searching (see \GO.DAT FILE below)


                              POINT-&-SHOOT MODE

     Typing "GO" or "GO D:" alone gives a full-screen display of the directory
 tree, with a header reminding you of the keys that function in this mode:

     PgUp, PgDn - move through a listing longer than one screen

     Up, Down arrows - position the cursor on a specific directory

     Enter - select this directory and exit.  (Note: if GO's information is
         outdated and you select a directory that no longer actually exists,
         the name will disappear from the display.)

     L - Log a new drive.  The cursor moves to the drive-letter space in the
         header; press the new drive letter ("A" etc), or Esc.  You can also
         reselect the PRESENT drive to rescan it, rebuilding the \GO.DAT file
         and displaying the updated directory tree.

     W - toggle display of Windows system directories (like "\Program Files"),
         normally OFF to avoid cluttering the display.  When on, the header
         toggle changes from "Win" to "WinX".  (If they still don't display,
         see \GO.DAT FILE below.)

     A - toggle Abbreviation, normally OFF; when on, only the first two levels
         of subdirectories are displayed, with further levels indicated simply
         by "...".  The header toggle changes from "Abb" to "AbbX".

     Esc - quit without changing directories

 If you're running GO with insufficient memory to compose the entire tree, it
 will be truncated automatically to however many levels can be displayed, the
 omissions indicated by "...".  (If Windows directories are on, toggling them
 OFF may still allow full display of the remaining items.)  Note that the
 display width is 66 characters, the maximum length of a standard DOS path;
 under Windows, paths can be even longer.


                                   EXAMPLES
 C:\WORK> go corr
   Go to the directory on drive C: whose name most closely matches "CORR..."
   (such as C:\WP\PERSONAL\CORRESP)

 C:\WORK> go d:corr.
   Go to the first directory found on D: with the exact name "CORR", such as
   D:\WP\BUS\CORR (the period prevents "CORR." from being taken as an
   abbreviation that matches longer names too)

 C:\WORK> go d:\wp\corr
   Go to the exact directory D:\WP\CORR (if D:\WP or D:\WP\CORR didn't already
   exist, they will be created)

 C:\WORK> go .\corr
   Go to subdirectory C:\WORK\CORR, creating it if it didn't already exist

 C:\WORK> go corr /m
   Create directory C:\WORK\CORR, or report that it already existed; the
   current directory remains unchanged (note the ".\" wasn't needed with /M)

 C:\WORK> go d:
   Display the entire tree for drive D:, with a cursor for selection

 C:\WORK> go a:.
   Go to the current directory on drive A: (note that this recovers nicely if
   the drive is empty, unlike the DOS command "A:")


                           AMBIGUOUS ABBREVIATIONS

     What happens when you use a search command like "GO BAK" on a drive that
 has more than one directory beginning "BAK..."?  This depends on whether it's
 a hard disk with a \GO.DAT file (see below).  If so, the rules are:

        (1) choose the closest (shortest) match;
        (2) between equal matches, choose the higher-level directory;
        (3) skip the current directory if any other match exists.

 Thus "GO BAK" should take you to \BAK rather than \WP\BAK, as "GO TEM" should
 go to \DOC\TEMP rather than \TEMPFILE.  (If you want \WP\BAK, you will have
 to say so or use an alias rather than an abbreviation; if you want \TEMPFILE,
 use a more specific one like "TEMPF".)  But if you're already in any of these
 directories, "GO BAK" or "GO TEM" should take you to the other one.

     Otherwise, if the \GO.DAT file is absent or not in perfect order, GO will
 do the best it can from the data file, or failing that, simply choose the
 first match it finds on disk.  In such cases, which possible matching
 directory "GO ABBR" will take you to may not be entirely obvious.

                              DEFINING ALIASES

     The simplest way to avoid ambiguity in abbreviations is to choose more
 distinct directory names in the first place, or rename some existing ones
 where possible.  But when this is impractical, or if you simply prefer a
 different approach, GO allows you to define specific "aliases" using the DOS
 command SET and environment variables.  For example, you could type:

                        SET GO_BAK=C:\BAK

 Now "GO BAK" is no longer ambiguous; it will take you to C:\BAK every time.
 But what if you also need to get to \WP\BAK?  Use another alias:

                        SET GO_WPB=C:\WP\BAK

 Now "GO WPB" will take you to \WP\BAK, every time.  If GO recognizes what
 you've typed as an alias, it will display the definition (for example,
 "WPB=c:\wp\bak") that it finds and uses.

     Once you have an alias that works well, you can make it permanent by
 putting its SET command in your AUTOEXEC.BAT file.  GO is primarily designed
 to find directories by their actual names, not to oblige you to remember an
 additional bunch of made-up aliases; nonetheless, you can set an alias
 anytime it suits you.  Aliases are processed before searching for directory
 names, so they supersede any actual name.  Also, because aliases must contain
 their own drive specification, they can be used from any drive, without
 providing a drive letter.  (Indeed, GO won't recognize a name following a
 drive letter as an alias, so in the example above, "GO C:BAK" will continue
 to function as an abbreviation, despite the alias GO_BAK.)

     You can type "GO ?" to display any aliases currently set, or find them
 listed among your other environment variables when you type "SET" alone.  To
 remove an alias, type "SET GO_xxx=" with nothing following the "=" (and
 delete any SET command from AUTOEXEC.BAT).  The environment variable for a GO
 alias must have the name "GO_xxx", where "_" is the underscore character and
 "xxx" is the desired alias, from 1 to 8 characters; after the '=' sign, you
 must specify the full drive and path (D:\...).  Upper/lowercase doesn't
 matter.  If you try to set too many aliases, you can fill up your DOS
 environment space, which may need to be enlarged.

                               THE \GO.DAT FILE

     Searching for directory names throughout a hard disk with an extensive
 directory tree can be tedious, even prohibitively slow on older computers,
 because DOS has no efficient way of doing this and must sift through every
 entry in every directory.  To avoid this, GO creates a single small data file
 "\GO.DAT" in the root directory of each hard disk, which speeds up future
 searches dramatically.  (On floppy disks this is unnecessary and would be
 rather a nuisance, so GO doesn't do it.)  If the data file should ever be
 deleted, GO will simply recreate it when needed.

     This all happens automatically; there's no need for the user to prepare
 anything before using GO, or to specify which drives should or shouldn't have
 a \GO.DAT file, and so on.  When you first use GO, and perhaps occasionally
 thereafter (when a directory isn't found in the data file, or is but no
 longer exists), you may find that your request takes some time, because GO
 needs to search the disk and update its data.  A question mark "?" displays
 during this process; if you want to abort, perhaps recognizing an error in
 the name you typed, you can press ^C.

     The \GO.DAT file will normally be accurate enough for most purposes, but
 if you suspect that recent changes haven't been noted and want to ensure that
 it's fully up to date, you can force a complete rescan of the disk in several
 ways: in full-screen mode, relog the disk; from the command line, use the /R
 option; or simply delete \GO.DAT.  (Note: if you have a very large Windows
 installation on your hard disk, GO may have to exclude Windows system
 directories completely in order to be able to construct and manage the
 \GO.DAT file at all.  In such a case GO won't find these directories, and
 they won't display in Point-&-Shoot, regardless of the "W"in toggle.)

     If you create new directories on your hard disk with GO rather than
 MKDIR, GO will instantly add them to the \GO.DAT file, avoiding unnecessary
 disk searches in the future.  (Any utility, including RMDIR or DELTREE, can
 be used to remove directories; GO will note their absence when it has
 occasion to.)  But note: new directories are merely appended to the end of
 \GO.DAT, so the usual rules of GO's search order may not apply perfectly to
 them; if you notice such an instance, a disk rescan will fix it.


                                    ERRORS

     D:NAME not found - no such directory on the drive at all
     Invalid argument - incorrect or incomplete argument, or empty drive
                Error - can't create directory: full disk, name too long, etc
        Out of memory - insufficient memory for directory data
              Aborted - user pressed ^C

     GO sets the DOS return code, so that batch files can test the ERRORLEVEL
 to determine subsequent action.  Zero indicates a normal exit.

          1 = invalid argument
          2 = name not found
          4 = out of memory
          8 = disk error (unable to create directory)
        128 = user abort

 No error is generated when GO /M reports that a directory already exists.

     GO also improves on the error handling of DOS when changing drives: if
 you type "D:" to log onto a new drive that's empty, DOS will try anyway,
 leading to an annoying "Ignore, Retry, Abort" query, then leaving you with an
 invalid current drive (perhaps even an error loop that can only be escaped by
 inserting a disk in that drive).  To avoid all this foolishness, GO simply
 reports an empty drive as invalid.

Go back to top of page

 ======================  8. RND: Rename/Move Directory  ======================

     RND allows you not only to rename a directory, but also to move it (with
 all its subdirectories) to an entirely different position in the directory
 tree.  RND can rearrange directories however you like quickly and
 automatically, without any actual copying of files at all.  This is a
 ridiculously slow and cumbersome thing to try to do with standard DOS
 commands like MKDIR, COPY, RMDIR, or even XCOPY /S and DELTREE.


                                    USAGE

     C> RND {d:\path\}dirname {newpath\}{newname}            "{}"=optional

              The first argument must be an existing directory, the
         second a legal directory path and/or name.  If no new name
         is specified, it will remain the same.  ".", ".." (etc
         under Windows) may be used for the current directory and
         its ancestors.  Wildcards ("?,*") may not be used.  The new
         path may not include a drive different from the first.  The
         root directory cannot be moved or renamed.

     If no new path is specified, the directory is simply RENAMED.  (RND can
 even rename the current directory and its ancestors, unlike Windows REN).  If
 the new path is different, then the tree is quickly reorganized with the
 directory (with all contents and subdirectories) MOVED to a different parent
 directory, which will be created (along with any ancestors) if necessary.
 You can also rename and move at the same time.  In either case the process is
 quite fast, involving only rearrangement of directory information.

     RND ignores any keys you may press, permitting no interruption while it's
 working; if you change your mind, you can always reverse the process once
 it's finished.  (Cleaning up after partially completed moves could be messy.)

     CAUTION: Renaming or moving directories is not an everyday need and
 shouldn't be done too lightly.  Use RND only where directory names and
 positions are a matter of personal taste, not where software applications (or
 the operating system itself) expect to find their own files in specific
 directories.  Please read the TECHNICAL INFORMATION below.


                                   EXAMPLES
 RENAMING...
  1.  C:\WORK> rnd d:\wp writing     Renames dir D:\WP       --> D:\WRITING
  2.  C:\WORK> rnd . writing         Renames dir C:\WORK     --> C:\WRITING
  3.  C:\WORK> rnd sue susan         Renames dir C:\WORK\SUE --> C:\WORK\SUSAN

 MOVING...
  4.  C:\WP> rnd sue\old bob\        Moves dir C:\WP\SUE\OLD --> C:\WP\BOB\OLD
  5.  C:\WORK> rnd \wp \urgent\      Moves dir C:\WP         --> C:\URGENT\WP

 MOVING AND RENAMING...
  6.  C:\WORK> rnd \wp \wp\letters   Moves dir C:\WP         --> C:\WP\LETTERS
  7.  C:\WORK> rnd sue \susan        Moves dir C:\WORK\SUE   --> C:\SUSAN

     Renaming (1-3) is straightforward; moving directories is potentially
 confusing, and calls for some further visualization.  Example 4 moves OLD
 from a subdirectory of C:\WP\SUE to one of C:\WP\BOB:

               C:\wp                      C:\wp
                    \bob           -->         \bob
                    \sue                           \OLD
                        \OLD                           \...
                            \...               \sue

 Example 5 moves WP down the directory tree, from a subdirectory of C:\ to one
 of C:\URGENT (which will be created if necessary).

                 C:\                        C:\
                    \work          -->         \work
                    \WP                        \urgent
                       \...                           \WP
                                                         \...

 Example 6 also moves WP one level down the tree; this time it also renames it
 to LETTERS, while making it a subdirectory of a new directory (otherwise
 empty) called... \WP!

                 C:\                        C:\
                    \work          -->         \work
                    \WP                        \wp
                       \...                       \LETTERS
                                                          \...

 Example 7 renames SUE to SUSAN and moves it up the directory tree on drive C,
 from a subdirectory of C:\WORK to one of the root C:\.

                 C:\                        C:\
                    \work          -->         \work
                         \SUE                  \SUSAN
                             \...                    \...


                            TECHNICAL INFORMATION

     Regarding LFNs under Windows, RND's only limitation is that it can't
 create new long names, because (like the other MFD utilities) it accepts only
 short ones on the command line.  When referring to existing directories, use
 their short names.  If you want to give a directory a new long name, use REN
 instead (it works on directories too now).  If you're creating new ancestors
 with a RND directory move and want them to have long names, use temporary
 short ones and then rename them afterwards with REN.

     Simply renaming a directory doesn't change its timestamp, but under DOS
 "moving" it will, since RND actually has to create a new directories and then
 remove the originals.  (If this is happening, you will see dots "..."
 displaying progress; it usually isn't necessary under Windows.)  Except for
 that, RND preserves all the properties (timestamps, attributes, LFNs) of all
 items moved.  RND always processes ALL directories and files, including any
 Hidden or System ones.

     You must have a little free disk space available for the creation of any
 new directories themselves.  When moving a directory to a lower level in the
 tree, be aware that there are limits on the length of a path: under DOS, 66
 characters; under Windows, 126 for short-form paths, 255 for long ones.


                                    ERRORS

   Invalid argument - incorrect or incomplete argument, or empty drive
      Name conflict - new directory name already in use
       Invalid path - bad source path, or destination path too long
      Out of memory - insufficient memory for directory data
              Error - unexpected error during disk access (disk full?)

     RND sets the DOS return code, so that batch files can test the ERRORLEVEL
 to determine subsequent action.  Zero indicates a normal exit.
          1 = invalid argument
          2 = directory name conflict or invalid path
          4 = out of memory
          8 = disk error (read/write)

Go back to top of page

 =====================  9. SETTING DEFAULTS WITH MFDSET ======================

     The MFDSET program allows easy customization of the appearance and
 options of the MFD Utilities CPY, DCMP, DLT, DTA, and GO.  (RND has no user-
 settable defaults.)  To use MFDSET, supply the filename of the program you
 wish to modify:

            C> MFDSET {path\}progname{.COM}             "{}"=optional

 (This can be as simple as: "MFDSET CPY".)  If the program selected is
 supported by this version of MFDSET, it will be identified and a menu will
 appear with four option letters highlighted:

              "E"dit settings         "S"ave changes
              "R"estore defaults      "Q"uit        :

          To customize the program, select "E"dit, change any desired
     settings, then select "S"ave.  (See detailed explanation of
     settings below.)

          To quit without saving any changes, select "Q"uit.

          To restore and save the initial (default) settings, select
     "R"estore.  (Please distribute copies of these programs only in
     this original default state.)

 If the new settings you save don't seem to have any effect when you next run
 the utility, there's probably a differently configured copy of it in a
 directory on your DOS search path that's being found first.


                     SCREEN COLORS (CPY,DCMP,DLT,DTA,GO)

     When color output is selected (see below), you can choose a set of three
 color combinations for display.  MFDSET will show the full palette
 of colors; each is identified by a pair of hexadecimal digits "00" to "7F"
 (or "FF"), the first indicating the background, the second the character
 color.  In the standard VGA palette, the digits have the following meaning:

         0 = BLACK   4 = red       8 = GREY           C = bright red
         1 = blue    5 = magenta   9 = bright blue    D = bright magenta
         2 = green   6 = brown     A = bright green   E = yellow
         3 = cyan    7 = WHITE     B = bright cyan    F = BRIGHT WHITE

     Three colors are used by each utility, for the purposes explained by
 MFDSET (for example, "Messages", "Filenames", and "Errors").  Type two hex
 digits, or press Enter to leave the current color unchanged.  Example: "17"
 gives white text on a blue background.

     Colors 80-FF normally produce annoying blinking video, and are only shown
 if blinking has been disabled on an EGA/VGA system.  Some monochrome displays
 show all colors as various shades of grey; others may produce reversed,
 underlined, or other video effects for certain combinations.  Whatever you
 see on screen here is what you will get.  Even ancient MDA displays can
 display black, white, and bright white (including reversed, black on white),
 and often also grey.

                       USE COLOR OUTPUT (CPY,DCMP,DLT)

     These utilities can display using either PC BIOS color output, which
 recognizes any screen size but cannot be redirected, or standard MSDOS output
 with the default video attribute, which can be redirected but assumes a 25
 line screen (and may go past 80 columns).  By default they display in color,
 but you can make standard DOS output the default instead if you wish.  Press
 "Y" or "N", or Enter to leave the current setting unchanged.  Whatever your
 default choice, using the command-line option /M will reverse it.

     (Note: while DTA doesn't offer this separate setting, you can get the
 same result by including "M" in its default option list -- see below.  RND
 only uses DOS output; GO uses color output for its full-screen display, and
 DOS output otherwise.)

                        INCLUDE HIDDEN DIRECTORIES (GO)

     By default, GO doesn't find or display directories that have the DOS
 "Hidden" or "System" attributes.  If you want it to do so, you can change
 this setting.  Press "Y" or "N", or Enter to leave the current setting
 unchanged.  (When you change this, you should also delete any \GO.DAT
 file(s); the new setting won't take full effect until they are rebuilt.)

                          PAGINATE BY DEFAULT (DCMP)

     Pagination (pause at the end of each screen for a keypress) is controlled
 by the /P option.  By default it's off, but if you would prefer it on, you
 can change this setting.  (In either case, using /P reverses the default.)
 Press "Y" or "N", or Enter to leave the current setting unchanged.

     (Note: while DTA doesn't offer this separate setting, you can get the
 same result by including "P" in its default option list -- see below.)

                           CONFIRM BY DEFAULT (DLT)

     Displaying filenames in an implicit group for confirmation before
 deletion is controlled by the /C option.  By default, confirmation is on, but
 if you would prefer it off, you can change this setting.  Press "Y" or "N",
 or Enter to leave the current setting unchanged.  (CAUTION: if you turn
 confirmation off, DLT will perform even global deletion *.* instantly!)

     When you display the help message with "DLT /?", your chosen setting is
 indicated by the fact that the "/C" option will be listed if it's not the
 default, while "/Y" will be shown instead if it is.

                            TIME/DATE FORMAT (DTA)

     When a time or date is specified with the /B,/L,/@ options, DTA adopts
 whatever format you use; otherwise, it needs to know which format to display
 by default.  There are four choices, selected by their first letter:
              "U"S                MM/DD/YY, 12:00a/p
              "E"uropean          DD.MM.YY, 24:00
              "N"umeric           YYMMDD, 2400
              "D"OS default       (Determined by your DOS country code)
 Or press Enter to leave the current setting unchanged.

                          DEFAULT OPTION STRING (DTA)

     DTA allows you to customize many of its options by entering a "default
 option string", which will be treated just as though you had typed it after a
 slash "/" on each DTA command line.  Type up to 15 characters (slashes and
 spaces are optional), then press Enter; or press Enter alone to leave the
 current setting unchanged.  (To wipe out the option string entirely, press
 Ctrl-Enter.)  Note that options "C,@,X,G,T,B,L,K" may not be specified as
 defaults, only "D,U,F,W,M,O,P,V" and "AaRrHhSs".

     Examples: if you want DTA to use its wide format by default, and in row
 instead of column order, type "WO" and press Enter.  If you'd like DTA to
 display more or less the way the DOS command DIR does, use "FUhs" instead.
 (That's full information, directories and files together, no hidden or system
 files.)  When you display the help message with "DTA /?", any default options
 currently installed will be reported.

     Any command-line options you actually use that conflict with these
 defaults will supersede them.  Thus if your defaults are "FUhs", you can
 still specify "/HS" to show (only) hidden and system items, overriding "hs";
 or "/D" to show only directories, overriding "U"; or "/W" for wide display,
 overriding "F".  You can also cancel any individual default option by
 repeating it.  Thus if your defaults are "FUhs", you can display files only
 by specifying "/U" again on the command line, or all items regardless of
 attributes by repeating "/hs".

 ===============================[end MFD.DOC]=================================

Go back to top of page

                                  MFD121.NEW
                                  ----------
                               MFD update news:
                           version 1.21, 9 Mar 2006

                              (c)2006, E. Meyer


 =================================== NEWS ====================================

                             MFD IS NOW FREEWARE

     As of version 1.2, the MFD Utilities are no longer shareware, but
 freeware; see MFD.DOC for the complete current usage policy.  Shareware
 support is no longer offered, and any further development will likely be
 limited to minor fixes.

                                  MFD ONLINE

     MFD and related files can be found on a number of websites on the
 Internet.  This one receives the latest updates direct from the author:

                 http://short.stop.home.att.net/

 MFD can also be found on major shareware download websites, by searching on
 keyword "MFD".  Of course, these sources may not always have the very latest
 version.


 =============================== UPDATE GUIDE ================================

                               NEW IN MFD 1.21

     * GO can now handle more directories on larger hard disks (though it may
 have to exclude Windows system directories to do so).  The Point-&-Shoot mode
 has two new commands: "W"in(X) toggles the display of Windows directories,
 now off by default; "A"bb(X) can Abbreviate the entire tree to just two
 levels.  Also, given insufficient memory, the tree will automatically be
 truncated to show as many levels as possible; an ellipsis "..." indicates the
 presence of undisplayed subdirectories.  The "R"escan command is gone; using
 "L"og to reselect the same drive will now cause a rescan.

     * RND has been revised to work compatibly in a Windows environment, and
 now preserves Long File Names of all directories and files it operates on.
 It also works faster, and can handle any number of files.  Confusing
 inheritance of the source's path has been removed (see SYNTAX in MFD.DOC).

     * In CPY, the /X option now allows a list of multiple filespecs in a
 single directory (as it does in DLT).

     * When DLT is given multiple filespecs that include the same file, it is
 now listed and processed only once, without spurious errors.  Also, failure
 to delete read-only files no longer quits with an error; only a warning is
 given upon exit.

     * DTA now handles more subdirectories without an "Out of Memory" error.
 Confusing path inheritance among multiple directory arguments has been
 removed (see SYNTAX in MFD.DOC).


 ========================= RECENT UPDATE SUMMARIES ===========================

                             MFD 1.2 (Dec 2002)

     * All the Utilities now work compatibly in a Windows environment except
 RND, which now quits with an error.  DOS 2.x support has been removed.

     * In GO: The argument "?" now lists all aliases.  A new option /R forces
 a rescan of the disk.  Option /T has been removed (use DTA /T).  GO ABBR,
 when used a directory already matching, now goes to another if it exists.

     * In CPY: The marking option /M has changed to /!, and is now independent
 from /A.  The /Q option has been replaced by the standard MFD /M (mono),
 which can be redirected (including to NUL).  Confirmation via /C now applies
 only to batch copying with wildcards or /X.

     * In DLT: /C now always means confirm, while a new option /Y always means
 delete without confirming, regardless of the default setting.  The help
 message (/?) indicates the default by listing the option that would change
 it.  Confirmation now applies only to batch deleting with wildcards or /X.

     * In DTA: /F now shows LFNs too.  /D no longer requires a workaround for
 directory names, and works with /G as it should.  Option /N has been removed.
 Incorrect free space statistics are no longer shown on large drives.


 ============================= VERSION HISTORY ===============================

              Release dates of the MFD Utilities package:

                             MFD 1.0 (Mar95)
                                 1.1 (May96)
                                 1.11(Sep97)
                                 1.2 (Dec02)
                                 1.21(Mar06)

              Since these utilities began as separate programs,
         details of their development are recorded here.  Until
         October 1988, DTA was called DA; until March 1995, CPY
         was ARCOPY and DCMP was DIRCMP.

  CPY 1.0 (Mar88) - First DOS release, based on previous CP/M utility ARCOPY.
      1.1 (Jul88) - New options /T, /?.  Improved parsing.
      1.2 (Apr89) - Comma-delimited multiple source lists.
      1.3 (Oct89) - Improved efficiency of copying and moving files.
      1.4 (Dec89) - New options /B, /L.  Improved parsing.
      1.5 (May90) - Small fixes; simplified multiple-source syntax.
      1.6 (Apr91) - New option /X.  Small fixes.
      1.7 (May91) - US/Euro/Numeric time,date formats.  Small fixes.
      1.71(Oct91) - Improved conflict detection; sets ERRORLEVEL.
      1.72(Feb93) - /B,L accept "-" for "ago"; color output.
      1.8 (Mar95) - New options /C, /Q; no more /Z, or device I/O.
      1.81(May96) - Internal improvements.
      1.82(Sep97) - Handles years 2000+; detects empty drives quickly.
      1.9 (Dec02) - Preserves Windows LFNs; /! replaces /M; /M replaces /Q.
      1.91(Mar06) - /X allows multiple filespecs.

  DTA 1.0 (Sep87) - First DOS release, based on previous CP/M utility DA.
      1.1 (Aug88) - Improved parsing; select AND change attribs; new options.
      1.2 (Oct88) - New /T tree option; DA is now called DTA.
      1.3 (Sep89) - New /G search, /E,L,@ options for time/date.
      1.4 (Mar90) - New /X option; removed /V (version) option.
      1.5 (May91) - US/Euro/Numeric date,time; /E changed to /B(efore).
      1.6 (Sep91) - Multiple filespecs; new /K option; improved display, etc.
      1.7 (Jan92) - New /M option; /B,L,@ accept "-"; small improvements.
      1.8 (Aug92) - New /V option; changeable /P default.
      2.0 (Nov92) - New /O options; default options via SET DTA=.
      2.1 (Dec93) - Default options now via patch; fixed "% free" for >64mb.
      2.2 (Oct94) - /VF shows 4 lines; column display improved; small fixes.
      2.3 (Mar95) - Lengthy /G,/T searches abort with ^C; sets ERRORLEVEL.
      2.4 (May96) - New options /O2-4; can specify starting dir for /G.
      2.41(Sep97) - Handles years 2000+; detects empty drives quickly.
      2.5 (Dec02) - Shows Windows LFNs; /D improved; /N removed.
      2.51(Mar06) - Handles more subdirectories.

 DCMP 1.0 (Apr89) - First DOS release, based on previous CP/M utility CPDSK.
      1.1 (May89) - Added changed file options, pagination.
      1.2 (Feb90) - Second argument defaults to current drive.
      1.3 (Oct92) - Color output; new /M, /S, /2 options.
      1.4 (Mar95) - Option to include hidden/system files; sets ERRORLEVEL.
      1.41(May96) - New /H replaces MFDSET option for hidden/system files.
      1.42(Sep97) - Detects empty drives quickly.
      1.5 (Dec02) - Works properly with Windows LFNs; improved display.

  DLT 1.0 (Mar90) - First release.
      1.1 (May90) - Small fixes; simplified syntax.
      1.2 (Oct91) - US/Euro/Num time/date formats; sets ERRORLEVEL.
      1.3 (Nov92) - New /P, /M options; /L,B accept "-"; color output.
      1.4 (Mar95) - MFDSET option for Confirm as default.
      1.41(May96) - Internal improvements.
      1.42(Sep97) - Handles years 2000+; detects empty drives quickly.
      1.5 (Dec02) - Works properly with Windows LFNs; /C improved, new /Y.
      1.51(Mar06) - Avoids duplicate listings and spurious No File messages.

   GO 1.0 (Oct94) - First release.
      1.1 (Mar95) - Point and shoot; aliases; faster; MFDSET options.
      1.11(May96) - "GO D:" now does point/shoot; "GO D:." changes to D:.
      1.2 (Dec02) - Windows; "?" lists aliases; new /R rescans; /T removed.
      1.3 (Mar06) - P&S mode handles more subdirs, has new "W"in, "A"bb cmds.

  RND 1.0 (Oct91) - First release.
      1.1 (Nov93) - Handles current directory properly under DOS 5 & 6.
      1.2 (Mar95) - Improved error handling; no more inter-drive moves.
      1.21(May96) - Internal improvements.
      1.22(Sep97) - Detects empty drives quickly.
      1.3 (Dec02) - Detects Windows environment and quits (incompatible).
      1.4 (Mar06) - Now works with Windows LFNs; faster, handles more files.

 ============================= [end MFD121.NEW] ==============================

Go back to top of page



1