
Ä Area: Batch Files (help, hints, tips, etc.) (Fido) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Msg#: 446             Rec'd                        Date: 12 Apr 95  19:38:00
  From: Greg Miskelly                                Read: Yes    Replied: No 
    To: Tony Baechler                                Mark:                     
  Subj: Multcopy.Bat
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
@REPLY: 1:102/125.6 2f885e5e
@MSGID: 2:255/100.0 2f8c7268
@FLAGS DIR

  -=> Quoting Tony Baechler to All <=-

Hi Tony

 TB> @ECHO OFF
 TB> REM MULTCOPY.BAT - copies files from the current directory
 TB> REM   to drive A: across multiple diskettes.
 TB> ATTRIB +A *.*
 TB> :Loop
 TB> XCOPY /M *.* A:
 TB> IF NOT ErrorLevel 4 GOTO Out
 TB> REM ^G in next line represents Ctrl+G
 TB> ECHO ^G
 TB> ECHO Insert a fresh diskette in drive A: and...
 TB> PAUSE
 TB> GOTO Loop
 TB> :Out
 TB> ECHO Done.

I think you need to be a bit more sophisticated than that. It
will ruin your archive attribute record on your files, which
might in turn mess up an incremental backup.

Try this: I wrote it for DOS 5 so it could easily be lightened
for DOS 6 where CHOICE can be used.

- - - - - - - - - - - - - - - < cut > - - - - - - - - - - - - - - -
@echo off
rem CLDD.BAT Copy Large Directories to Diskettes
   if "%1 == "/subroutine goto dothebiz
   if "%1 == " goto help
   if "%1 == "/? goto help
   if not exist %1 echo Error! Source file(s) %1 do not exist
   if not exist %1 goto help
   if "%2 == "a: set cldddrv=A:
   if "%2 == "A: set cldddrv=A:
   if "%2 == "b: set cldddrv=B:
   if "%2 == "B: set cldddrv=B:
   if "%cldddrv% == " goto help
   for %%a in (%1) do call %0 /subroutine %%a %2
   set clddno=
   set cldddsk=
   set cldddrv=
   goto end
:dothebiz
   if "%cldddsk% == " goto disksub
   :dsreturn
      xcopy %2 %cldddrv% > nul
      if errorlevel 4 goto disksub
      echo File %2 successfully copied to %cldddrv%
      goto end
:disksub
   set cldddsk=new
   if "%clddno% == "9 set clddno=10
   if "%clddno% == "8 set clddno=9
   if "%clddno% == "7 set clddno=8
   if "%clddno% == "6 set clddno=7
   if "%clddno% == "5 set clddno=6
   if "%clddno% == "4 set clddno=5
   if "%clddno% == "3 set clddno=4
   if "%clddno% == "2 set clddno=3
   if "%clddno% == "1 set clddno=2
   if "%clddno% == " set clddno=1
   :drvloop
      if exist %temp%\~ynflag.tmp del %temp%\~ynflag.tmp
      echo Place Diskette No %clddno% in Drive %cldddrv%
      pause
      rem > %temp%\~ynflag.tmp
      echo Is diskette a new unformatted diskette Y/N
      del %temp%\~ynflag.tmp /p > nul
      if not exist %temp%\~ynflag.tmp goto initial
      if exist %cldddrv%\*.* goto formdisk
      goto doform
      :formdisk
         echo There are Files on Target Diskette
         echo Do you want to overwrite?  Y/N
         rem > %temp%\~ynflag.tmp
         del %temp%\~ynflag.tmp /p > nul
         if exist %temp%\~ynflag.tmp goto dsreturn
         :doform
            echo.
            echo Preparing Diskette. Please Wait!
            ren /?|format %cldddrv% /u /q /v:"" > nul
            if errorlevel 4 goto fault
            goto dsreturn
         :fault
            echo Please fix error, and try again.
            pause
            goto doform
         :initial
            if exist %temp%\~ynflag.tmp del %temp%\~ynflag.tmp
            format %cldddrv% /autotest /v:""
            goto dsreturn
:help
echo CLDD.BAT Copy Large Directories to Diskette
echo.
echo Syntax     CLDD FILESPEC DRVSPEC
echo.
echo where FILESPEC is the files to be copied and
echo DRVSPEC is the target diskette drive.
echo.
echo Example   CLDD *.* A:
echo.
:end
- - - - - - - - - - - - - - - < cut > - - - - - - - - - - - - - - -
This should work okay for systems using MSDOS 5 and above.

Regards
Greg
___ Blue Wave/QWK v2.12

-!- Maximus/2 2.01wb
 ! Origin: The MonuSci BBS (2:255/100)
SEEN-BY: 102/2 125 128 129 138 210 230 332 390 435 523 752 851 861 903 1302
SEEN-BY: 112/1 147/7 206/1701 270/101 280/1 7 9 10 45 65 66 69 101 113 115
SEEN-BY: 280/118 145 161 180 222 301 306 314 315 333 335 343 359 385 398
SEEN-BY: 290/627 396/1 3615/50
@PATH: 255/100 141/209 375 754 1130 1135 3615/50 396/1 280/1 102/2 138 129
@PATH: 102/125



