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

  1. /* Merge Mail  KKMERGE.CMD */
  2.  
  3.  call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
  4.  call SysLoadFuncs
  5.  LAST_NUMBER_FILE = 'number.pms'
  6.  
  7.  arg  SrcDir DisDir .
  8.  
  9.  if DisDir = '' then do
  10.     say 'usage: kkmerge <source directory> <disnation directory>'
  11.     exit
  12.  end
  13.  if translate(SrcDir) = translate(DisDir) then do
  14.     say 'Same Directory !!'
  15.     exit
  16.  end
  17.  if CheckFolder(SrcDir) = 0 then do
  18.     say 'Not Exist Source Directory'
  19.     exit
  20.  end
  21.  if CheckFolder(DisDir) = 0 then do
  22.     say 'Not Exist Disnation Directory'
  23.     exit
  24.  end
  25.  
  26.  SrcDir = CheckSgn(SrcDir)
  27.  DisDIr = CheckSgn(DisDir)
  28.  
  29.  rc = SysFileTree(SrcDir || '*', 'stemF', 'F')
  30.  if stemF.0 = 0 then do
  31.     say 'No Mail'
  32.     exit
  33.  end
  34.  cnt = 0
  35.  do j=1 to stemF.0
  36.     parse var stemF.j d t s a fn
  37.     fn = strip(fn)
  38.     f  = substr(word(stemF.j,5), lastpos("\",word(stemF.j,5))+1)
  39.     if datatype(f, "N") \= 1 then iterate
  40.     n = ReadNewMailNumber(DisDir)
  41.     if n = -1  then n = 1
  42.     fn2 = DisDir || n
  43.     rc = WriteNewMailNumber(DisDir, n + 1)
  44.     if rc = 0 then exit
  45.     else
  46.     /*say fn '->' fn2*/
  47.     '@copy ' || fn || ' ' || fn2 ' 1>nul 2>nul'
  48.     '@del  ' || fn || ' 1>nul 2>nul'
  49.     cnt = cnt + 1
  50.  end
  51.  rc = WriteNewMailNumber(SrcDir, 1)
  52.  say cnt || ' files moved'
  53.  exit
  54.  
  55. CheckSgn:
  56.  arg dir
  57.  if right(dir, 1) = '\' then return dir
  58.  return dir || '\'
  59.  
  60. CheckFolder:
  61.  arg folder
  62.  if right(folder, 1) = '\' then folder = left(folder, length(folder - 1))
  63.  rc = SysFileTree( folder, "stem", "D" )
  64.  if stem.0 = 0 then return 0
  65.  return 1
  66.  
  67. ReadNewMailNumber:
  68.  arg folder
  69.  fname = folder || LAST_NUMBER_FILE
  70.  rb = stream(fname,"c","OPEN READ")
  71.  if rb = "READY:" then do
  72.     n = linein( fname, 1 )
  73.     call stream fname, "c", "CLOSE"
  74.  end
  75.  else do
  76.     n = -1
  77.  end
  78.  return n
  79.  
  80. WriteNewMailNumber:
  81.  arg folder, nn
  82.  fname = folder || LAST_NUMBER_FILE
  83.  rb = stream(fname,"c","OPEN WRITE")
  84.  if rb = "READY:" then do
  85.     call lineout fname, nn, 1
  86.     call lineout fname
  87.     call stream fname, "c", "CLOSE"
  88.     return 1
  89.  end
  90.  else do
  91.     say "âëâXâgâüü[âïNoâtâ@âCâï("||fname||")é¬ì∞ɼé┼é½é▄é╣é±"
  92.     return 0
  93.  end
  94.  
  95.  
  96.