home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 3 Comm
/
03-Comm.zip
/
autozoc.zip
/
GETFILES.REX
< prev
next >
Wrap
OS/2 REXX Batch file
|
1995-11-19
|
5KB
|
239 lines
/* REXX script to automatically call BBS, log on, download up to ten files, then log off. */
/* clear screen */
'CLS'
/* set variables */
USER_NAME="XXXXX XXXXXXX" /* your name as registered with the BBS (put in quotes) */
PASSWORD="XXXX" /* your password as registered with the BBS (put in quotes) */
BBS_NUM="#-###-###-####" /* the BBS phone number (put in quotes) */
MIN_SPEED=##### /* minimum connect speed you'll accept (NO QUOTES) */
MAX_ATTEMPTS=# /* maximum number of times to retry the call (NO QUOTES) */
QTY_FILES=0
FILE_A=""
FILE_B=""
FILE_C=""
FILE_D=""
FILE_E=""
FILE_F=""
FILE_G=""
FILE_H=""
FILE_I=""
FILE_J=""
/* Ask user for first file name */
'ASK "Enter file name to download."'
IF ZOCRESULT()="##CANCEL##" THEN EXIT
IF ZOCRESULT()="" THEN EXIT
IF ZOCRESULT()\="" & ZOCRESULT()\="##CANCEL##" THEN
DO
FILE_A=ZOCRESULT()
/* ask for maximum of 9 more file names */
DO QTY_FILES=2 to 10
/* Ask user for file name */
'ASK "Enter file name to download."'
IF ZOCRESULT()="##CANCEL##" THEN EXIT
IF ZOCRESULT()="" THEN LEAVE QTY_FILES
IF QTY_FILES=2 THEN FILE_B=ZOCRESULT()
IF QTY_FILES=3 THEN FILE_C=ZOCRESULT()
IF QTY_FILES=4 THEN FILE_D=ZOCRESULT()
IF QTY_FILES=5 THEN FILE_E=ZOCRESULT()
IF QTY_FILES=6 THEN FILE_F=ZOCRESULT()
IF QTY_FILES=7 THEN FILE_G=ZOCRESULT()
IF QTY_FILES=8 THEN FILE_H=ZOCRESULT()
IF QTY_FILES=9 THEN FILE_I=ZOCRESULT()
IF QTY_FILES=10 THEN FILE_J=ZOCRESULT()
END QTY_FILES
END /* IF */
DO CALL_BBS=1 TO MAX_ATTEMPTS
/* clear screen */
'CLS'
/* initialize modem */
SEND 'ATZ1^M'
DELAY 1
SAY "Attempt # " CALL_BBS
SAY "Calling the OS/2 Shareware BBS to download files. Dialing...." BBS_NUM
'TIMEOUT 60'
DIAL BBS_NUM '^IOS/2 Shareware'
/* let's see what kind of response we get */
DO RESULT_TYPE=1 TO 6
/* receive next line of text */
'GETLINE'
/* if no answer, try again (leave loop) */
IF RC=640 THEN
DO
HANGUP
LEAVE RESULT_TYPE
END
/* if BUSY was received, try again (leave loop) */
IF ZOCLASTLINE()=="BUSY" THEN
DO
DELAY 1
SAY "The line is busy. We'll try again."
LEAVE RESULT_TYPE
END
/* if NO DIAL TONE was received, end with error message */
IF ZOCLASTLINE()=="NO DIAL TONE" THEN
DO
DELAY 1
SAY "Possible hardware or software trouble. Aborting attempt."
EXIT
END
/* if NO CARRIER was received, end with error message */
IF ZOCLASTLINE()=="NO CARRIER" THEN
DO
HANGUP
SAY "Possible dialing error. Check phone number."
EXIT
END
/* determine the connect speed */
DO B=9 TO 15
IF SUBSTR(ZOCLASTLINE(),B,1)="/" THEN
DO
B=B-9
LEAVE B
END
END B
SPEED=SUBSTR(ZOCLASTLINE(),9,B)
IF SPEED<MIN_SPEED THEN
DO
HANGUP
ASK '"Connect speed is too slow!"' '"Do you want to try again?"'
IF ZOCRESULT()="##CANCEL##" THEN
DO
EXIT
END
ELSE LEAVE RESULT_TYPE
END
ELSE LEAVE CALL_BBS
END RESULT_TYPE
NOTIFY "Pausing for 30 seconds."
DELAY 30
END CALL_BBS
IF CALL_BBS=MAX_ATTEMPTS+1 THEN
DO
NOTIFY "Can't get through now.....try again later."
'CLS'
EXIT
END
WAIT 'your name:'
SEND USER_NAME '^M'
WAIT SUBSTR(USER_NAME,LENGTH(USER_NAME)-2,3)' [Y,n]?'
SEND 'y^M'
WAIT 'Password:'
SEND PASSWORD '^M'
WAIT 'o continue'
SEND '^M'
WAIT 'e [Y,n,=]?'
SEND 'N^M'
WAIT 'Select: '
SEND 'F^M'
WAIT 'Select: '
SEND 'D^M'
'TIMEOUT 6000'
DO FILE_NAMES=1 TO 100
IF QTY_FILES>=2 THEN
DO
WAIT 'load (#1):'
SEND FILE_A '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=3 THEN
DO
WAIT 'load (#2):'
SEND FILE_B '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=4 THEN
DO
WAIT 'load (#3):'
SEND FILE_C '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=5 THEN
DO
WAIT 'load (#4):'
SEND FILE_D '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=6 THEN
DO
WAIT 'load (#5):'
SEND FILE_E '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=7 THEN
DO
WAIT 'load (#6):'
SEND FILE_F '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=8 THEN
DO
WAIT 'load (#7):'
SEND FILE_G '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=9 THEN
DO
WAIT 'load (#8):'
SEND FILE_H '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=10 THEN
DO
WAIT 'load (#9):'
SEND FILE_I '^M'
END
ELSE LEAVE FILE_NAMES
IF QTY_FILES>=11 THEN
DO
WAIT 'load (#10):'
SEND FILE_J '^M'
END
ELSE LEAVE FILE_NAMES
END FILE_NAMES
WAIT 'load (#'QTY_FILES'):'
SEND '/G^M'
WAIT '<esc> to abort:'
SEND '^M'