BBS建站上网365问/193.如何设置批处理文件?

来自Jamesqi
跳转至: 导航搜索

  RemoteAccess应该在批处理文件中运行,以便每个呼叫者断线后可以循环等待。当RemoteAccess终止时,传递一个错误代码回到批处理文件,批处理文件应该捕捉这个错误代码并相应动作。错误代码可以从1到255,1到5是保留的。

  下面举出三个例子说明如何设置批处理文件:

  (1) 单线站台

  下面是单线不转信站台的例子。文件名为RUNRA.BAT,后面可以接受线号为参数,例如运行一线时命令行为“RUNRA 1”。

  @echo off

  REM 设置环境变量。

  SET RA=\BBS\RA

  :Start

   REM 开始批处理文件主循环。

   Cls

   Echo 开始RemoteAccess线号 %1

   CD \BBS\RA\NODE%1

   \BBS\RA\RA -E10 -N%1

   REM RA 退出以后,捕捉这个错误代码。

  :AfterRA

   IF ERRORLEVEL 20 GOTO Maintain

   IF ERRORLEVEL 10 GOTO Start

   IF ERRORLEVEL 2 GOTO Local

   IF ERRORLEVEL 0 GOTO Quit

  :Maintain

   REM 因为这是单线站台,所以可以直接做维护任务。

   CD \BBS\RA

   REM 打包用户数据库,删除60天没有呼叫的用户,并进行排序。

   RAUSER -S -P -D60

   REM 打包信件数据库,按RACONFIG中的设置删除信件,

   REM 重新编号,更新回复链以及用户上次阅读指针。

   RAMSG PACK -Purge -Renumber

   REM 结束维护任务,循环批处理文件。

   GOTO Start

  :Local

   REM 本地登录模式。

   CD \BBS\RA\NODE%1

   \BBS\RA\RA -E10 -L -N%1

   REM 结束时跳到AfterRA来捕捉返回的错误代码。

   GOTO AfterRA

  :Quit

   REM 退出批处理文件。

  (2) 多线站台

  多线站台的批处理文件复杂一些。下面是不转信多线站台的批处理文件例子。文件名为RUNRA.BAT,后面可以接受线号为参数。运行命令行为“RUNRA <线号>”。

  @echo off

  REM 设置环境变量。

  SET RA=\BBS\RA

  :Start

   REM 开始批处理文件主循环。

   Cls

   Echo 开始RemoteAccess线号%1

   CD \BBS\RA\NODE%1

   \BBS\RA\RA -E10 -N%1

   REM RA退出以后,捕捉错误代码。

  :AfterRA

   IF ERRORLEVEL 20 GOTO Maintain

   IF ERRORLEVEL 10 GOTO Start

   IF ERRORLEVEL 2 GOTO Local

   IF ERRORLEVEL 0 GOTO Quit

  :Maintain

   REM 因为这是多线站台,所以应该只让一条线执行维护任务,避免冲突。

   REM 二线进入事件后暂停,等待一线完成维护,然后继续。

   CD \BBS\RA

   REM 当一线做维护任务时,如果不是一线,则跳到等待(wait)。

   IF NOT %1 == 1 GOTO Wait

   REM 创建一个叫RAWAIT.SEM的标志文件。

   ECHO … >RAWAIT.SEM

   REM 打包用户数据库,删除60天没有呼叫的用户,并进行排序。

   RAUSER -S -P -D60

   REM 打包信件数据库,按RACONFIG中的设置删除信件,

   REM 重新编号,更新回复链以及用户上次阅读指针。

   RAMSG PACK -Purge -Renumber

   REM 结束维护任务,删除标志文件,然后循环批处理文件。

   ERASE RAWAIT.SEM

   GOTO Start

  :Local

   REM 本地登录模式

   CD \BBS\RA\NODE%1

   \BBS\RA\RA -E10 -L -N%1

   REM 结束时跳到AfterRA来捕捉返回的错误代码。

   GOTO AfterRA

  :Wait

   REM 在这里等待,直到文件RAWAIT.SEM不再存在。

   IF EXIST RAWAIT.SEM GOTO Wait

   REM 如果它不存在则循环。

   Goto Start

  :Quit

   REM 退出批处理文件。

  (3) 转信的多线站台(用shell到邮递器模式运行)

  转信的多线站台批处理文件更复杂一些。可以使用两种模式运行站台,这里的例子是用shell到邮递器模式。例子中的邮递器为FrontDoor。

  文件名为RUNRA.BAT,后面可以接受线号为参数。运行的命令行为:“RUNRA <线号>”。

  @echo off

  REM 设置环境变量。

  SET RA=\BBS\RA

  SET FD=\BBS\FD

  :Start

   REM 开始批处理文件主循环。

   Cls

   Echo 开始RemoteAccess并shell到邮递器

   CD \BBS\RA\NODE%1

   \BBS\RA\RA -M\BBS\FD\FD.EXE*M -E10 -N%1

   REM RA退出后,捕捉这个错误代码。

  :AfterRA

   IF ERRORLEVEL 20 GOTO Maintain

   IF ERRORLEVEL 10 GOTO Start

   IF ERRORLEVEL 2 GOTO Local

   IF ERRORLEVEL 0 GOTO Quit

  :Maintain

   REM 因为这是多线站台,所以应该只让一条线执行维护任务,避免冲突。

   REM 二线进入事件后暂停,等待一线完成维护,然后继续。

   CD \BBS\RA

   REM 当一线做维护任务时,如果不是一线,则跳到等待(wait)。

   IF NOT %1 == 1 GOTO Wait

   REM 创建一个叫RAWAIT.SEM的标志文件。

   ECHO … >RAWAIT.SEM

   REM 打包用户数据库,删除60天没有呼叫的用户,并进行排序。

   RAUSER -S -P -D60

   REM 打包信件数据库,按RACONFIG中的设置删除信件,

   REM 重新编号,更新回复链以及用户上次阅读指针。

   RAMSG PACK -Purge -Renumber

   REM 结束维护任务,删除标志文件,然后循环批处理文件。

   ERASE RAWAIT.SEM

   GOTO Start

  :Local

   REM 本地登录模式

   CD \BBS\RA\NODE%1

   \BBS\RA\RA -E10 -L -N%1

   REM 结束时跳到AfterRA来捕捉返回的错误代码。

   GOTO AfterRA

  :Wait

   REM 在这里等待直到文件RAWAIT.SEM不再存在。

   IF EXIST RAWAIT.SEM GOTO Wait

   REM 如果它不存在则循环。

   Goto Start

  :Quit

   REM 退出批处理文件。

关于“BBS建站上网365问/193.如何设置批处理文件?”的留言:

目前暂无留言

新增相关留言