FADS 1.1

FADS: Find - Attributes - DateTime - Size


Warranty Disclaimer:

The author disclaims all warranties as to this software, whether
express or implied, including without limitation any implied
warranties of merchantability or fitness for a particular purpose.
In no event shall the author be liable for any loss of profit or
any other commercial damage including, but not limited to special,
incidental, consequential or other damages.

In other words, no lifeguard on duty - use at your own risk.

This is Freeware:

This software may be freely copied, distributed, given away, and used
as long as (a) no fee is charged for the software, excluding media, and
(b) the complete set of original files is included in the distribution.

Files in this package:

FADS.EXE - The program
FADS.TXT - This file (for those that didn't know).

Source Code:

The complete source code to this program, FADS.PAS, is available on
this download service in the file FADSSRC.ZIP.  The executable program,
FADS.EXE, was compiled from FADS.PAS using Borland Pascal 7.0.

Comments to the author?:

If you have any comments, you can send them to me at:
  CompuServe ID: 72674,1315

  Mailing address: Al
                   P.O.Box 13266
                   Burton, WA 98013


Running this software:

This program is command-line driven.
This program can act in 1 of 5 ways:
  1. A "Touch" (file-date/timestamp modifier) program
     if the filename is one of these:   FD,  FILEDATE,  TOUCH
  2. A directory lister
     if the filename is one of these:   LD,  LISTDIR
  3. A file-finder (that totals file sizes)
     if the filename is one of these:   FF,  FILEFIND,  FINDFILE
  4. A file-attributer modifier
     if the filename is one of these:   FA,  FILEATTR
  5. A counter of lines in textfiles
     if the filename is one of these:   LC,  COUNTLNS

Copy FADS.EXE to one of the above (e.g. TOUCH.EXE) to set its behavior.

Alternatively, set the environment variable FADS to one of the above
names.  The environment variable overrides the filename.  That is, if
you set FADS in the environment, it doesn't matter what the executable
is named.

Enter FADS /? (or whatever the name of the executable) to display
the syntax of usage.


TOUCH syntax:

TOUCH will modify the timestamp (date & time) of a file.

Syntax: TOUCH pathname [/D[date]] [/T[time]] [/S] [/Y] [/1]

    /D[mm-dd-yy]  Set the file date to [mm-dd-yy]
    /T[hh:mm:ss]  Set the file time to [hour:minute:second]
    /S            Include Subdirectories.
    /Y            Automatically answer Yes to confirmation prompt.
    /1            Force confirmation prompt even if only one file.

NOTES: 1. If more than one file's timestamp would be modified,
          you are prompted to confirm, unless /Y is included.
       2. Files flagged ReadOnly, Hidden or System are not touched.
       3. If you do not include /D or /T, TOUCH will set the file's timestamp
          to that of the current date & time.
       4. Hour:minute:second can be from 00:00:00 to 23:59:59.
       5. Including both /Y and /1 is dumb, and skips the confirmation prompt.


LISTDIR syntax:

LISTDIR lists directories starting at the specified directory.

Syntax: LD [starting directory] [/W:file] [/W[1][2][3][4]] [/WO] [/Y]

    /W:file       Write output to file as well as to screen.  Assumes /Y.
    /W[1][2][3][4]  Write to output file (default all) e.g./W23
       1 - echo command line
       2 - Starting directory & # of directories found
       3 - Directories (without number)
       4 - Directories with leading number and period (overrides 3)
    /WO           Overwrite output file (if it exists) without prompting.
    /Y            Don't pause after each screenful.
NOTES: 1. The default starting directory is the CURRENT directory.


FILEFIND syntax:

FILEFIND finds files matching the pathname and specified attributes (if any).
Syntax: FILEFIND [pathname] [/A[+/-]] [/R[+/-]] [/H[+/-]] [/SYS[+/-]] [/S-]
                            [/Z] [/E:var] [/L] [/FIT:drive] [/C]
                            [/W:file] [/W[1][2][3][4][5][6][7]] [/WO] [/Y]
    /A or /A+     Find files with Archive attribute set
    /A-           Find files without Archive attribute set
    /R or /R+     Find files with ReadOnly attribute set
    /R-           Find files without ReadOnly attribute set
    /H or /H+     Find files with Hidden attribute set
    /H-           Find files without Hidden attribute set
    /SYS or /SYS+ Find files with System attribute set
    /SYS-         Find files without System attribute set
    /S-           Exclude Subdirectories.  (default : search subdirectories)
    /Z            Scan through .ZIP files (sensitive to attrib) for filespec
    /E:var        Search the only directories listed in environment variable
                  named after E:.  (e.g. /E:PATH)
    /L            Count lines in files ( NOTE: Textfiles are assumed! ).
    /FIT:drive    Determine space required to copy found files to drive.
    /C            Cluster size scenarios.
    /W:file       Write output to file as well as to screen.  Assumes /Y.
    /W[1][2][3][4][5][6][7]  Write to output file (default all) e.g./W1246
       1 - echo command line
       2 - Starting directory & # of directories found
       3 - Directories (without number)
       4 - Directories with leading number and period (overrides 3)
       5 - File information
       6 - # of file found
       7 - bytes summary information
    /WO           Overwrite output file (if it exists) without prompting.
    /Y            Don't pause after each screenful.
NOTES: 1. Default starting search directory is the CURRENT directory.
       2. Default filespec is *.*.  Additional filespecs may be added.
       3. Files found in ZIPs have compressed size listed under "Space Used".

  About Cluster Size scenarios (/C):
  
  This option will calculate how much space files will use up on your hard
  disk based on the cluster size.
  A client had just bought a new 486-66 with a 540 MB HD (partitioned as only
  a single C: drive.).  They had an existing 486-66 with a 440 MB HD (also
  as a single C:), with only 37 MB free.  I was asked to transfer the files
  from the existing to the new machine to provide the user with additional
  free space.  After copying the files from the 440 MB HD to the 540 MB HD,
  there were only 32 MB free on the 540 MB HD.  No gain in free space, but
  a LOSS!  Needless to say, I now keep my partitions under 512 MB.

  Using FILEFIND to search multiple drives:
  
  Please create a batchfile called FFF.BAT (or whatever) with the following
  lines:
     @echo off
     if [%1]==[] goto info
     FOR %%d IN (%2 %3 %4 %5 %6 %7 %8 %9) DO FF %%d\%1
     goto endbat
     :info
     echo Enter %0 filespec drive1 [drive2] [drive3]..[drive9]
     echo e.g. %0 *.EXE C: D: E:
     :endbat

  In order to make this program available, I decided not to spend time
  modifying the code to perform search on multiple drives.  With the
  source code (available on CompuServe) and the Borland Pascal compiler,
  you could incorporate this feature if you wish.


FILEATTR syntax:

FILEATTR will modify the attributes of a file.

Syntax: FILEATTR pathname [/A+|/A-] [/R+|/R-] [/H+|/H-] [/SYS+|/SYS-]
                          [/S] [/Y] [/1]

    /A+           Sets Archive attribute
    /A-           Removes Archive attribute
    /R+           Sets ReadOnly attribute
    /R-           Removes ReadOnly attribute
    /H+           Sets Hidden attribute
    /H-           Removes Hidden attribute
    /SYS+         Sets System attribute
    /SYS-         Removes System attribute
    /S            Include Subdirectories.
    /Y            Automatically answer Yes to confirmation prompt.
    /1            Force confirmation prompt even if only one file.

NOTES: 1. If more than one file's attributes would be modified,
          you are prompted to confirm, unless /Y is included.
       2. Including both /Y and /1 is dumb, and skips the confirmation prompt.


COUNTLNS syntax:

COUNTLNS finds files matching the pathname and specified attributes (if any)
         and counts the number of lines found in each.
Syntax: COUNTLNS [pathname] [/A[+/-]] [/R[+/-]] [/H[+/-]] [/SYS[+/-]]
                            [/E:var] [/S]
                            [/W:file] [/W[1][2][3][4][5][6][7]] [/WO] [/Y]
    /A or /A+     Find files with Archive attribute set
    /A-           Find files without Archive attribute set
    /R or /R+     Find files with ReadOnly attribute set
    /R-           Find files without ReadOnly attribute set
    /H or /H+     Find files with Hidden attribute set
    /H-           Find files without Hidden attribute set
    /SYS or /SYS+ Find files with System attribute set
    /SYS-         Find files without System attribute set
    /E:var        Search the only directories listed in environment variable
                  named after E:.  (e.g. /E:PATH)
    /S            Include Subdirectories.
    /W:file       Write output to file as well as to screen.  Assumes /Y.
    /W[1][2][3][4][5][6][7]  Write to output file (default all) e.g./W1246
       1 - echo command line
       2 - Starting directory & # of directories found
       3 - Directories (without number)
       4 - Directories with leading number and period (overrides 3)
       5 - File information
       6 - # of file found
       7 - bytes summary information
    /WO           Overwrite output file (if it exists) without prompting.
    /Y            Don't pause after each screenful.
NOTES: 1. Default starting search directory is the CURRENT directory.
       2. Default filespec is *.*.  Additional filespecs may be added.
       3. Files found in ZIPs have compressed size listed under "Space Used".


  About CountLns:
  
  CountLns is essentially the same as FILEFIND above, except that the
  /L (count lines) and /S- (don't search subdirectories) switches do
  not need to be specified.


  eof: FADS.TXT

