home *** CD-ROM | disk | FTP | other *** search
/ Zodiac Super OZ / MEDIADEPOT.ISO / FILES / 16 / FILL605.ZIP / FILL.DOC < prev    next >
Text File  |  1996-05-10  |  21KB  |  431 lines

  1. FILL.DOC                             1                         Revised: 05/10/96
  2.  
  3. The FILL program is designed to help you move or copy  files  off  a  hard  disk
  4. while reducing the amount of wasted space on the destination disks.  Internally,
  5. it does this by sorting the file names so the  largest  files  are  moved/copied
  6. first.  It then moves or copies whatever files can fit on the  floppy,  skipping
  7. any that can't.  Features:
  8.  
  9.   * Can either move or copy the files to the resulting location.
  10.   * Can go onto to multiple diskettes as desired, beeping if desired when
  11.     the next disk is expected.
  12.   * Can move the files in file name order or any of standard ordering
  13.     categories.
  14.   * Can be used to split up files which are too big to fit on a single disk.
  15.   * Can create a status/transaction file for you, showing what was copied/moved.
  16.   * Can label the output diskette, providing some patterns like sequence numbers
  17.     and dates which it will fill in for you.
  18.   * Some times useful for network transfers where standard MOVE command doesn't
  19.     always work.
  20.   * Can review and delete if desired any files which are already in the
  21.     output destination (e.g. already on the output diskette).
  22.   * Can reformat the whole disk if files are going to drive A or B.
  23.   * Can specify an input file ("@listfile") which contains the files to be
  24.     copied.
  25.  
  26. Limits:
  27.   * Routine can only process the first 500 files found.  It ignores the rest of
  28.     them.  If you're using /MOVE, you can always run it after some of the
  29.     files are gone and get the rest of them that way.
  30.   * Routine can only review for deletion the first 200 files in the output
  31.     location.
  32.   * Routine does not provide any cool features to fix up destination drives
  33.     that have surface errors.  If it encounters an error, it just beeps, gives
  34.     you an error message, and returns to DOS.
  35.   * Routine will not format the output diskette for you.
  36.   * Switching diskette densities is not recommended (e.g. intermixing 720K
  37.     diskettes with 1.44MB diskettes may cause errors).
  38.   * The routine's ability to continually test for a new diskette (/CONT) only
  39.     works if the diskette was formatted using DOS 4.0 or later.  That's the
  40.     version that puts volume sequence numbers on the diskettes.  One way to
  41.     insure this if you're using the newer versions of DOS is to do a
  42.     quick-reformat of your floppies whenever you'd normally do a DEL A:*.*.  I
  43.     do this with a QDR.BAT command that has the following:
  44.  
  45.         FORMAT %1 /Q /U /V:Bruce
  46.  
  47.     I then say "QDR A:" or "QDR B:".  It invokes an unconditional quick format
  48.     and applies a volume label on the diskette (to avoid the prompt).  If the
  49.     diskette does not have a sequence number, DOS tells you it can't be
  50.     quick-formatted and asks if it can do the full format instead.
  51.  
  52.  
  53.  
  54. FILL.DOC                             2                         Revised: 05/10/96
  55.  
  56. Note on copying/moving files to multiple diskettes:
  57.  
  58. I didn't think this was confusing but a lot of people don't seem  to  understand
  59. the technique of how files are moved to multiple diskettes.
  60.  
  61. Let's say you have six files:
  62.  
  63.         A_FILE.ZIP      500K
  64.         B_FILE.ZIP      300K
  65.         C_FILE.ZIP      650K
  66.         D_FILE.ZIP      200K
  67.         E_FILE.ZIP      450K
  68.         F_FILE.ZIP       25K
  69.  
  70. You're moving these files to blank 1.2MB diskettes  and  you  have  the  default
  71. /MULTI and /ON settings.  The program checks how much space is available on  the
  72. destination drive and comes back with 1.2MB.
  73.  
  74. It scans the input files and internally sorts them by descending size.  It  then
  75. looks for the biggest file in the file list and comes back  with  C_FILE.ZIP  at
  76. 650K.  Will this file fit on the  destination  drive?   Yes.   It  retains  that
  77. information, figures there is now 550K left on the output drive, and checks  for
  78. the second biggest file.  A_FILE.ZIP is 500K.  Will that also fit?  Yes.  So now
  79. there's 50K left.  The next biggest file is E_FILE.ZIP at 450K.  Will that  fit?
  80. Nope.  Check the next  biggest.   This  continues  until  it  reaches  the  file
  81. F_FILE.ZIP which is only 25K.  That's the biggest file  that  will  fit  in  the
  82. remaining 50K.
  83.  
  84. So it has three files to move.  What order should it move them?   You  have  /ON
  85. set so it's going to move them in file name order.  So it  moves  the  following
  86. files in the following order:
  87.  
  88.         A_FILE.ZIP      500K
  89.         C_FILE.ZIP      650K
  90.         F_FILE.ZIP       25K
  91.  
  92. Next diskette.  Same process.  This time it processes the remaining files:
  93.  
  94.         B_FILE.ZIP      300K
  95.         D_FILE.ZIP      200K
  96.         E_FILE.ZIP      450K
  97.  
  98.  
  99. Specifying parameters:
  100.  
  101. Parameters for this program can be set in the following ways.  The last  setting
  102. encountered always wins:
  103.   - Read from an *.INI file (see BRUCEINI.DOC file),
  104.   - Through the use of an environmental variable (SET FILL=whatever), or
  105.   - From the command line (see "Syntax" below)
  106.  
  107.  
  108.  
  109. FILL.DOC                             3                         Revised: 05/10/96
  110.  
  111. Syntax:
  112.  
  113.     FILL [ filespec | @listfile ] [ [ /TO ] drive: | [ /TO ] drive:\path\ ]
  114.       [ /MOVE | /COPY ] [ /PROMPT ] [ /Iinitfile | /-I ]
  115.       [ /OVERWRITE | /-OVERWRITE | /OVERSKIP | /OVERASK ]
  116.       [ /Ox | /O-x ] [ /Xfilespec ]... [ /WIPE ] [ /MULTI | /SINGLE ]
  117.       [ /SPLIT ] [ /FORCE ] [ /-LETTER ] [ /LABEL=label [ /START=n ] ]
  118.       [ /Frptfile [ /S+ | /S- | S* ] [ /CONT ] [ /TIME ]
  119.       [ /-BEEP ] [ /-LAST ] [ /FAKE ] [ /Q ] [ /? ]
  120.  
  121. where:
  122.  
  123. "filespec" is the file specification for what you want to move.  You can specify
  124. a drive and path and file wildcards if  necessary  (e.g.   "C:\TEMP\*.BAT")  but
  125. otherwise it defaults to your default drive and directory and takes "*.*".  Note
  126. that the program cannot handle any request for more than 500 files at a time.
  127.  
  128. "@listfile" allows you to have a variety of file specifications saved in a  text
  129. file named "listfile".  You cannot have more than 50 file specifications in this
  130. file (and you're still limited to  the  500  files  total).   Each  line  should
  131. consist of a file name with optional drive and path  information.   Blank  lines
  132. and lines beginning with semi-colons, colons, or quotes are ignored.
  133.  
  134. "drive:" or "drive:\path" (or "/TO  drive:"  or  "/TO  drive:\path")  tells  the
  135. routine what drive or path to move the files to.  In  many  cases,  the  routine
  136. doesn't really care whether the source specification  precedes  or  follows  the
  137. destination specification.  If either parameter ends with a colon  (e.g.   "A:")
  138. or slash (e.g.  "C:\QB45\"), the routine will  presume  that's  the  destination
  139. specification and the other one must be the  source  specification.   If  either
  140. parameter contains a wildcard,  the  routine  will  presume  that's  the  source
  141. specification and the other one must be the destination specification.  So "FILL
  142. A:  *.BAS" is the same as "FILL *.BAS A:".  The use  of  the  "/TO"  keyword  is
  143. optional unless the  specification  is  being  provided  in  an  initfile.   The
  144. original default is "A:" (or "/TO A:").
  145.  
  146. "/MOVE" says to move the files instead of copying them.  Initially  defaults  to
  147. "/MOVE".
  148.  
  149. "/COPY" says to copy the files instead of moving them.   Initially  defaults  to
  150. "/MOVE".
  151.  
  152. "/PROMPT" says to prompt for each filename before moving it.  Initially defaults
  153. to "/-PROMPT".
  154.  
  155. "/-PROMPT" says to not prompt for each file.  Initially defaults to "/-PROMPT".
  156.  
  157. "/Iinitfile" says to read an initialization file with the file name  "initfile".
  158. The file specification *must* contain a period.  Initfiles are described in  the
  159. BRUCEINI.DOC file.  Initially defaults to "/IFILL.INI".
  160.  
  161. "/-I" (or "/INULL") says to skip loading the initialization file.
  162.  
  163.  
  164. FILL.DOC                             4                         Revised: 05/10/96
  165.  
  166. "/OVERWRITE" says  to  overwrite  same-named  files  in  the  destination  path.
  167. Initially defaults to "/OVERSKIP".
  168.  
  169. "/-OVERWRITE" says to abort if any same-named files are found in the destination
  170. path.  Initially defaults to "/OVERSKIP".
  171.  
  172. "/OVERSKIP" says to skip any file that already exists in the  destination  path.
  173. The counts aren't accurate in this case.  This is initially the default.
  174.  
  175. "/OVERASK"  says  to  prompt  if  same-named  files  exist  in  the  destination
  176. directory.  Initially defaults to "/OVERSKIP".
  177.  
  178. "/Ox" and "/O-x" allow you to specify the copy order for the files.  "x" can  be
  179. one of the following:
  180.  
  181.         N = file name
  182.         D = file date and time
  183.         S = file size
  184.  
  185. If you precede the "x" with a dash ("-"), the  sort  will  be  done  in  reverse
  186. order.  Note that this parameter does not determine which files are  copied;  it
  187. only determines what order they are actually copied.  Since the order  that  the
  188. file tends to show up in a DOS DIR listing is  based  on  creation  order,  this
  189. sequence may be relevant  to  how  the  files  ultimately  show  up.   Initially
  190. defaults to "/ON".
  191.  
  192. "/Xfilespec" says to exclude  certain  filespecs  from  being  moved.   You  can
  193. specify up to 10 exclusion parameters but each must have  their  own  /Xfilespec
  194. statement.  For example, to move all files except those with  a  BAS  extension,
  195. you could say "FILL /X*.BAS".
  196.  
  197.  
  198. FILL.DOC                             5                         Revised: 05/10/96
  199.  
  200. "/WIPE" says that if the destination drive has files on it, prompt the user  for
  201. whether these files should be deleted or not.  Six sub-options show up  in  this
  202. case:
  203.  
  204.     Do *NOT* delete the x file(s)    Don't delete anything
  205.     List file(s)                     List the files but don't delete any of
  206.                                      them.  The user will be reprompted for
  207.                                      these four options after pressing a key.
  208.     Select file(s) to delete         List the files and allow the user to
  209.                                      select any to be deleted.  Keys:
  210.                                         * Cursor keys -- move among list
  211.                                         * Space       -- select that file
  212.                                         * Ctrl-Enter  -- select all files
  213.                                         * Ctrl-bs     -- deselect all files
  214.                                         * Enter       -- process those tagged
  215.                                         * Esc         -- skip processing
  216.                                      After pressing Enter, the selected files
  217.                                      will be deleted.  You will then get the
  218.                                      standard four prompts again.
  219.     Delete all file(s)               Delete all files in the specified
  220.                                      directory.  Subdirectory files will not
  221.                                      be deleted.
  222.     Reformat the diskette            If your output drive is either A or B,
  223.                                      the program will shell to DOS and execute
  224.                                      a "FORMAT d:" command.  This (and the
  225.                                      next) sub-option will result in the
  226.                                      subdirectories being eliminated, something
  227.                                      which the prior sub-options don't do for
  228.                                      you.
  229.     Quick-reformat the diskette      If your output drive is either A or B
  230.                                      and you're running under DOS 5.0 or higher,
  231.                                      the program will shell to DOS and execute
  232.                                      a "FORMAT d: /Q" command.
  233.  
  234. Initially defaults to "/-WIPE".
  235.  
  236. "/-WIPE" reverses /WIPE.  Initially defaults to "/-WIPE".
  237.  
  238. "/MULTI" says to go to a second disk if all of the files can't fit on the  first
  239. diskette.  Initially defaults to "/MULTI".
  240.  
  241. "/SINGLE" says process only one diskette at a time and to  not  prompt  for  the
  242. next diskette once the first gets filled up.  Initially defaults to "/MULTI".
  243.  
  244. "/SPLIT" says to split up large files which otherwise would not be able  to  fit
  245. onto the output disk.  For example, /SPLIT is useful when you have a 1.8MB  file
  246. that you're trying to copy or move to a 1.2MB or 1.44MB diskette.  Unless /FORCE
  247. is specified, files are split only if an empty output diskette would not be able
  248. to support the file; it will not split up a 800KB file just  because  the  1.2MB
  249. output diskette only has 600KB free.  /SPLIT must be used with a  specific  file
  250. request; not a wildcarded one.  Split files are given  the  file  extensions  of
  251. .x01, .x02, etc (see /LETTER vs /-LETTER options below for  explanation  of  the
  252. "x") until all necessary splitting is accomplished.  To put them  back  together
  253. again, use the DOS COPY copy with the /B option.  For example:
  254.  
  255.         COPY TEST.Z01/B+TEST.Z02/B TEST.ZIP
  256.  
  257.  
  258. FILL.DOC                             6                         Revised: 05/10/96
  259.  
  260. If (and ONLY if) you use something like Norton's DIRSORT command  so  the  files
  261. appear  in  sequence  in  your  directory  (and  not  because  of  any  DIR  /ON
  262. specification!), you can also concatenate using wildcards:
  263.  
  264.         COPY TEST.Z0*/B TEST.ZIP          [ONLY IF PHYSICALLY IN CORRECT ORDER]
  265.  
  266. Do NOT try this unless you're sure though, okay?  Note that if you  have  a  SET
  267. DIRCMD setting, the directory may look ordered when it's not.  Use  DIR  /-O  to
  268. check if necessary.
  269.  
  270. "/-SPLIT" reverses "/SPLIT" and is initially the default.
  271.  
  272. "/FORCE" says to split up files when /SPLIT is used even if the file is  smaller
  273. than the output disk would be.  So, if you have a 1.44MB  diskette  and  a  600K
  274. file, /FORCE will allow it to be split.  This is not  the  default  because  you
  275. typically do not want to split up every file; just the ones that are too big.
  276.  
  277. "/-FORCE" only allows files bigger than the output destination to be  split  up.
  278. This is initially the default.
  279.  
  280. "/LETTER" says that when /SPLIT is  specified,  use  the  first  letter  of  the
  281. original file extension when naming the split up file.   For  example,  TEMP.ZIP
  282. would become TEMP.Z01, TEMP.Z02, etc.  This does not affect files which  do  not
  283. get split.  Initially defaults to "/LETTER".
  284.  
  285. "/-LETTER" says that split up file  names  should  be  numeric  only.   TEMP.ZIP
  286. becomes TEMP.001, TEMP.002, etc.  This does not affect files which  do  not  get
  287. split.  Initially defaults to "/LETTER".
  288.  
  289. "/LABEL=label" specifies the volume label to be written to the output  disk.  By
  290. default, the label is not changed.  The label can be a quoted mixed-case string.
  291. It can contain several replaceable lowercase only parameters: "mm"  is  replaced
  292. with the two-digit month, "dd" is replaced  with  the  two-digit  day,  "yy"  is
  293. replaced with the two-digit year, and "n" or "nn" or "nnn" is  replaced  by  the
  294. sequence number of the disk.  All numeric fields are padded  to  the  left  with
  295. zeroes as necessary.  If the current date is January 20, 1996:
  296.  
  297.         /LABEL="BKyymmdd nn"
  298.  
  299. will label the first first "BK960120 01", the second  disk  "BK960120  02"  etc.
  300. Note that labels can be no longer than 11 characters in length.  All  characters
  301. except the replaceable parameters will be translated to uppercase characters.
  302.  
  303. "/START=n" specifies the first sequence number to use in place of "n", "nn",  or
  304. "nnn" in the /LABEL parameter.  Defaults to "/START=1".
  305.  
  306.  
  307. FILL.DOC                             7                         Revised: 05/10/96
  308.  
  309. "/Frptfile" specifies the name of a status report file to be created.  This file
  310. is a text file that reports on what's been processed  by  the  program.   If  it
  311. exists already, the file is appended to, not  overwritten.   A  sample  of  some
  312. lines from the file using the /S* option (which is not the default):
  313.  
  314.   FILL results for  /copy *.exe /ftest.txt /beep /wipe /s* /split
  315.   Being run on 01-20-1996 at 17:58:10
  316.  
  317.   Label        FileName    Date     Time                Size Operation
  318.  
  319.   TEST93 #01   AV.EXE       09/29/95 00:50:58          70,282 SKIP
  320.   TEST93 #01   BC.EXE       08/19/94 23:59:00         150,562 SKIP
  321.   TEST93 #01   BFIND.EXE    08/02/95 23:07:08          60,016 SKIP
  322.   TEST93 #01   VBDOS.EXE    08/19/94 23:59:00         555,520 COPY
  323.  
  324.   BRUCE        AV.EXE       09/29/93 00:50:58          70,282 SKIP
  325.   BRUCE        BC.EXE       08/19/92 23:59:00         150,562 SKIP
  326.   BRUCE        BFIND.EXE    08/02/93 23:07:08          60,016 SKIP
  327.  
  328. "/S+" specifies that the only files to be written to the status file  are  those
  329. files that actually get copied/moved.  This is the default.
  330.  
  331. "/S-" specifies that the only files to be written to the status file  are  those
  332. files that did not get copied/moved.  Since the  skipping  is  determination  is
  333. done with each disk, the status file may show the same file name as "SKIP"  over
  334. and over again.
  335.  
  336. "/S*" specifies that the status report should contain all files copied/moved  as
  337. well as skipped.  This can be a huge report.
  338.  
  339. "/CONT" is used if you want the routine to continually check your  floppy  drive
  340. to see when a new diskette has been put in and continue once it recognizes  this
  341. has happened.  The only time you'd have to press a key is if you  want  to  stop
  342. processing diskettes (in which case you'd press Escape).  This  option  is  only
  343. available if you're using DOS 4.0 or higher and only works for disks  that  have
  344. been formatted using DOS 4.0 or higher (it uses the serial number on the disk in
  345. order to determine that the disk has been replaced).  It  typically  won't  work
  346. for disks that are pre-formatted from a store or something  since  they  usually
  347. all have the same serial number.
  348.  
  349. "/-CONT" reverses "/CONT" and is initially the default.
  350.  
  351. "/TIME" says to show how much time it took for  the  transfers,  showing  you  a
  352. bytes copied/moved per second.
  353.  
  354. "/-TIME" says to skip the bytes per second information.  This is  initially  the
  355. default.
  356.  
  357. "/BEEP" says to beep once the routine is done  doing  its  thing  (a  high  tone
  358. followed by a low one).  It will also beep whenever it's time to stick in a  new
  359. diskette (a low tone followed by a high one).  Initially defaults to "/BEEP".
  360.  
  361. "/-BEEP" says to not beep upon completion.  Initially defaults to "/BEEP".
  362.  
  363.  
  364. FILL.DOC                             8                         Revised: 05/10/96
  365.  
  366. "/LAST" says to indicate when you are starting the last  disk  in  a  multi-disk
  367. set.  This doesn't apply to /SPLIT cases.  Some people consider the indicator to
  368. be rather unappealing on the screen so it's optional.   This  is  initially  the
  369. default.
  370.  
  371. "/-LAST" turns off the last-disk indicator in a multi-disk set.
  372.  
  373. "/FAKE" turns off the actual copying of  files.   It  basically  puts  you  into
  374. simulation mode so you can see what it would do, how many disks it  would  take,
  375. et cetera.
  376.  
  377. "/-FAKE" reverses "/FAKE" and is initially the default.
  378.  
  379. "/Q" turns off the file-by-file status reporting.
  380.  
  381. "/?" or "/HELP" or "HELP" shows you the syntax for the command.
  382.  
  383.  
  384. Return codes:
  385.  
  386. FILL returns the following ERRORLEVEL codes:
  387.  
  388.         0 = no problems, all files copied
  389.         1 = no problems, but some files skipped since /-MULTI
  390.       250 = too many entries in @listfile file
  391.       251 = couldn't find @listfile file
  392.       252 = had DOS errors copying/moving the files (bad sectors found)
  393.       253 = had problems copying/moving the files
  394.       254 = no files found to copy/move
  395.       255 = syntax problems, or /? requested
  396.  
  397.  
  398.  
  399. FILL.DOC                             9                         Revised: 05/10/96
  400.  
  401. Author:
  402.  
  403. This program was written by Bruce Guthrie of Wayne Software.  It is free for use
  404. and redistribution provided relevant documentation is kept with the program,  no
  405. changes are made to the program or documentation, and it  is  not  bundled  with
  406. commercial programs or charged for separately.  People who need to bundle it  in
  407. for-sale packages must pay a $50 registration fee to  "Wayne  Software"  at  the
  408. following address.
  409.  
  410. Additional information about this and other Wayne Software programs can be found
  411. in the file BRUCEymm.DOC which should be included  in  the  original  ZIP  file.
  412. ("ymm" is replaced by the last digit of the year and the two digit month of  the
  413. release.  BRUCE512.DOC came out in December 1995.  This same  naming  convention
  414. is used in naming the ZIP file that this program was included in.) Comments  and
  415. suggestions can also be sent to:
  416.  
  417.                 Bruce Guthrie
  418.                 Wayne Software
  419.                 113 Sheffield St.
  420.                 Silver Spring, MD 20910
  421.  
  422.                 fax: (301) 588-8986
  423.                 e-mail: bguthrie@nmaa.org
  424.                 http://hjs.geol.uib.no/guthrie/
  425.  
  426. See BRUCEymm.DOC file for additional contact information.
  427.  
  428. Foreign users:  Please provide an Internet e-mail address in all correspondence.
  429.  
  430. 
  431.