DIR_DATE v2.1
=============

Copyright 1996 Simon A Carter.

The first, the one and the only File/Directory Date Changer:

    *  Can change the time and date of both files, directories
       and volume labels.
    *  Supports wildcards.
    *  Supports recursion into subdirectories.
    *  Can selectively change only the hours, minutes, seconds,
       day, month or year of the file without affecting other
       values.
    *  Can set time/date to current time and date, or any part of
       the time/date to the current value or a specified value.
    *  Can use a reference file and set all file dates to the
       date of the reference file.
    *  Has a preview mode where no changes are actually made.
    *  Skips altering Windows 95 long filenames.


PRIVATE use of Dir_Date is FREE. Please register your usage by
sending email to Simon Carter at launch@ozemail.com.au, with your
name and address.

Paid registration (costing $AUS 10) is required for use in a
business, commercial, government or institutional environment.
Please see the end of this file for more information.


WARNING - PLEASE READ!
======================

This program bypasses DOS and directly modifies the directory
entries on your hard disk. It is possible that incorrect or even
correct use of this program may damage your system, so use it with
CAUTION! If you don't know what you are doing, don't use it! And
above all, make a BACKUP FIRST! I will NOT be held responsible.
Make use of the /N option as a trial first.


What will Dir_Date do for ME ?
=============================

DOS does not provide any capabilities to change the date of
directories or volume labels, and this is the gap that Dir_Date
fills. Dir_Date can change any part of the date and/or time on any
disk file, directory or volume label, whether it is located in the
root directory or a subdirectory. It can be used to indicate to
search utilities that the contents of a directory have been
updated. Dir_Date skips altering Windows 95 long filenames. Any
part of the date and/or time can be set to the current date/time,
or to a specified value. Dates may be set to the same date as that
of a reference file, or to the date of a reference file modified
by subsequent values.


Installation
============

Just copy DIR_DATE.EXE to a directory in your path, for example,
to C:\DOS. To find out the directories in your path, type

   c:\> path    [Enter]


How to use Dir_Date
===================

Typing

   Dir_Date    [Enter]

on its own will display usage information.

   Usage:
     dir_date [/S] [/N] <directory>[\wildcards] [file=] [datepart
   [datepart...]]
   
       /S  Recurse into subdirectories
       /N  Don't make any changes (preview mode)
   
     Where [datepart] is one of:
         hour=<hours>    0..23
          min=<minutes>  0..59
          sec=<seconds>  0..59 (even values only)
          day=<day>      1..31
        month=<month>    1..12
         year=<year>     1980..2099
         file=<reference file>  Set to date of reference file
   
     No date = Now
     $=current e.g. hour=$  means set hour only to the current
   hour


The /N option is a preview mode - Dir_Date runs as normal, but no
changes are written back to disk. This is very useful if you are
unsure about which files Dir_Date is going to modify.

The /S option tells Dir_Date that if it finds any subdirectories
in the starting directory, it should go into them also and modify
the dates and times on any files and subdirectories e.g. If you
started Dir_Date /S in the Windows directory, as well as modifying
the time and date on all files and subdirectory entries in the
Windows directory, it would also enter each subdirectory (System,
MsApps etc) and change the files and directories found there.

The initial path is NOT optional. If it is the current directory,
use "." as the directory name. To change the date of a directory,
specify the name of the directory e.g.

   Dir_Date c:\windows\system year=1995

This affects only the specified directory, and not any of the
files in it. To change the date of a group of files, specify them
as follows:

   Dir_Date c:\windows\system\*.dll year=1995

The affects only files and directories in the "c:\windows\system"
directory that match the wildcard "*.dll". If you had a directory
called "old.dll" it would also be changed. The recursion into
subdirectories does not depend on the directory name matching a
wildcard.

Every date and time part can be individually manipulated without
effecting any other part. The valid ranges for each date part are
shown above. The special date part FILE (which must appear first),
may be used to "grab" the date and time value from a reference
file. This may then be modified by subsequent date parts. For
example, if you were releasing a program, and you wanted the dates
and times on all of the files to be the same as the main program,
you could use

   Dir_Date /s c:\my_prog file=c:\my_prog\runme.exe

You could also use subsequent date parts to set the time field to
the version number of the program, as is commonly done:

   Dir_Date /s c:\my_prog FILE=c:\my_prog\runme.exe HOUR=4 MIN=3
   SEC=0

DOS does not allow odd values of seconds, and any odd value you
provide will be rounded down to the nearest second.

When Dir_Date runs, it first validates its input and shows the
changes that it is going to perform. It then prints out the name
of each file changed as it traverses the file list. Files not
changed are prefixed with "No change for". Files modified have
"Changing" prefixed. If the month is February and the day is
greater than 29, Dir_Date warns you that the date may wrap into
March.


Redirecting Output
------------------

Dir_Date's output can be redirected to any device. For example, to
save Dir_Date's output to the file output.txt, you can type:

   c:\> Dir_Date > output.txt    [Enter]

To add Dir_Date output to an existing file exists.txt, type

   c:\> Dir_Date >> exists.txt    [Enter]

To send Dir_Date's output to the printer, type

   c:\> Dir_Date > prn    [Enter]

To view a convenient page-by-page display of Dir_Date's output,
type

   c:\> Dir_Date | more    [Enter]


Dir_Date Example
----------------

The output below was generated from running Dir_Date in the
Windows directory (in a DOS shell under Windows 95):

   c:\Windows> Dir_Date /s /n fonts\*.* month=7
   Dir_Date v2.1  Copyright (c) 1996 Simon Carter
   
   Recursing into subdirectories
   Disabling writes (preview mode)
   Setting MONTH=7
   No change for C:\WINDOWS\FONTS\MARLETT.TTF
   No change for C:\WINDOWS\FONTS\SYMBOL.TTF
   No change for C:\WINDOWS\FONTS\LUCON.TTF
   Changing C:\WINDOWS\FONTS\WID_____.TTF
   Skipping Win95 LFN C:\WINDOWS\FONTS\APlay.b
   No change for C:\WINDOWS\FONTS\PLAYBILL.TTF
   Skipping Win95 LFN C:\WINDOWS\FONTS\ALati.n
   No change for C:\WINDOWS\FONTS\LATINWD.TTF
   Skipping Win95 LFN C:\WINDOWS\FONTS\AArlr.d
   No change for C:\WINDOWS\FONTS\ARLRDBD.TTF
   Skipping Win95 LFN C:\WINDOWS\FONTS\ALine.d
   No change for C:\WINDOWS\FONTS\LINEDRAW.TTF
   Skipping Win95 LFN C:\WINDOWS\FONTS\AHatt.e
   No change for C:\WINDOWS\FONTS\HATTEN.TTF
   Changing C:\WINDOWS\FONTS\KEYCAPS.TTF
   No change for C:\WINDOWS\FONTS\PARAGONN.TTF
   Changing C:\WINDOWS\FONTS\BEDROCKN.TTF
   Changing C:\WINDOWS\FONTS\CAS_ANTI.TTF
   Changing C:\WINDOWS\FONTS\CAS_ANTN.TTF
   Changing C:\WINDOWS\FONTS\TECHNCLI.TTF

(The output above has been abbreviated for brevity)


Windows 95
==========

Dir_Date will not work on hard disks or floppy drives if they are
protected by Windows 95 (usually only hard disks are protected,
floppies can be modified). Windows 95 does this to prevent old
utilities from destroying long filenames, which Dir_Date does not
do.

Dir_Date does not handle Windows 95 long filenames provided as a
parameter. If you want to specify a long pathname to start in, you
must use the short form e.g. "c:\progra~1" instead of "c:\Program
Files". If Dir_Date finds a Windows 95 long filename entry it will
automatically skip it. In almost all cases, Windows 95 long
filename entries will fail any wildcard match, unless the wildcard
match is *.*. Long filename entries are stored differently to
normal directory entries, and altering the time or date of the
abbreviated version of a Windows 95 long filename will not effect
the long filename time or date at all. For example, if you changed
the time/date of "c:\Program Files" and then did a DIR, you would
find the original date and time unchanged. This is because DOS
gets the date and time information from the Windows 95 long
filename entry, not the abbreviated entry. You can still change
the date/time on files that do not have long filename entries.


Release Information
===================

Date       Version   Changes Made
24-June-96 2.1       First released.
21-May-96  1.0       First created and used.


Registration
============

PRIVATE use of Dir_Date is FREE. Please register your usage of
Dir_Date by sending email to launch@ozemail.com.au, with your name
and address, and any relevant comments.

Paid registration (costing $10) is required for use in a business,
commercial, government or institutional environment.

Order form
----------


    Personal details
    ----------------
    
           Name: ____________________________________________
        Company: ____________________________________________
        Address: ____________________________________________
                 ____________________________________________
                 ____________________________________________
                 ____________________________________________
          Phone: ____________________________________________
            Fax: ____________________________________________


    For Visa, MasterCard or Bank Card (*)
    -------------------------------------
    (Sorry, I currently do not accept American Express)
    
    Card Number: ____ ____ ____ ____
    Expiry Date: ____/______
    
    
      Signature: ________________________________
    
           Date: ____________
    
    (*) Please note that these orders are processed by Omnivision
    Technologies, a licensed distributor.
    
    
    Cheques
    -------
    I accept bank cheques and personal cheques drawn on an
    Australian bank. Foreign cheques cost me an additional $AUS 12
    to cover my bank's foreign cheque charge. Please make cheques
    payable to Simon Carter.
    
    
    Postal money orders
    -------------------
    I accept prepaid postal money orders in Australian dollars.


Contact Information
===================

I am always happy to hear your comments! If you use and like
Dir_Date, or have any suggestions for improvements, please drop me
a line!

  Email:  launch@ozemail.com.au
    WWW:  Checkout the Crystal Software home page at
          http://www.ozemail.com.au/~launch
    Fax:  +61-3 9800-3078  Any time.
  Voice:  +61-3 9729-8836  After hours number. Please leave a
          contact name, number and time, and I will try to get
          back to you within 24 hours.
   Mail:  Simon Carter
          Crystal Software
          2 / 9 Woodbine Court
          Wantirna
          Victoria 3152
          AUSTRALIA.
    

