home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / kkmail01.zip / KKARCH.CMD < prev    next >
OS/2 REXX Batch file  |  1996-09-24  |  2KB  |  93 lines

  1. /* Archive Mail  KKARCH.CMD */
  2.  
  3.  call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
  4.  call SysLoadFuncs
  5.  LAST_NUMBER_FILE = 'number.pms'
  6.  
  7.  arg  SrcDir DisZip Sno Eno .
  8.  
  9.  if DisZip = '' then do
  10.     say 'usage: kkarch <source directory> <disnation filename> [<start> <end>]'
  11.     exit
  12.  end
  13.  if CheckFolder(SrcDir) = 0 then do
  14.     say 'Not Exist Source Directory'
  15.     exit
  16.  end
  17.  if Sno = '' then Sno = 1
  18.  if Eno = '' then Eno = 99999999
  19.  SrcDir = CheckSgn(SrcDir)
  20.  n = ReadNewMailNumber(SrcDir)
  21.  if n = -1  then do
  22.     say 'NoMails'
  23.     exit
  24.  end  /* Do */
  25.  if Eno > n then Eno = n - 1
  26.  
  27.  say 'KKARCH  Mail No:' || Sno || '->' || Eno
  28.  
  29.  TmpDir  = SrcDir || 'kkarch.tmp'
  30.  TmpDir2 = CutDrive(TmpDir)
  31.  '@md ' || TmpDir
  32.  
  33.  say 'Select Mails'
  34.  do i = Sno to Eno
  35.     fname = SrcDir || i
  36.     rb = stream(fname,"c","OPEN READ")
  37.     if rb = "READY:" then do
  38.        call stream fname, "c", "CLOSE"
  39.        '@move ' || CutDrive(fname) || ' ' || TmpDir2 || ' 1>nul 2>nul'
  40.     end
  41.  end /* do */
  42.  rc = WriteNewMailNumber(CheckSgn(TmpDir), i + 1)
  43.  
  44.  say 'Archive Mails'
  45.  '@zip -m -9 ' || DisZip || ' ' || TmpDir || '\* 1>nul 2>nul'
  46.  '@rd ' || TmpDir
  47.  exit
  48.  
  49. CheckSgn:
  50.  arg dir
  51.  if right(dir, 1) = '\' then return dir
  52.  return dir || '\'
  53.  
  54. CheckFolder:
  55.  arg folder
  56.  if right(folder, 1) = '\' then folder = left(folder, length(folder - 1))
  57.  rc = SysFileTree( folder, "stem", "D" )
  58.  if stem.0 = 0 then return 0
  59.  return 1
  60.  
  61. ReadNewMailNumber:
  62.  arg folder
  63.  fname = folder || LAST_NUMBER_FILE
  64.  rb = stream(fname,"c","OPEN READ")
  65.  if rb = "READY:" then do
  66.     n = linein( fname, 1 )
  67.     call stream fname, "c", "CLOSE"
  68.  end
  69.  else do
  70.     n = -1
  71.  end
  72.  return n
  73.  
  74. WriteNewMailNumber:
  75.  arg folder, nn
  76.  fname = folder || LAST_NUMBER_FILE
  77.  rb = stream(fname,"c","OPEN WRITE")
  78.  if rb = "READY:" then do
  79.     call lineout fname, nn, 1
  80.     call lineout fname
  81.     call stream fname, "c", "CLOSE"
  82.     return 1
  83.  end
  84.  else do
  85.     say "âëâXâgâüü[âïNoâtâ@âCâï("||fname||")é¬ì∞ɼé┼é½é▄é╣é±"
  86.     return 0
  87.  end
  88.  
  89. CutDrive:
  90.  arg path .
  91.  if substr(path, 2, 1) \= ':' then return path
  92.  return right(path, length(path) - 2)
  93.