Well here is a very complicated one. The complications are due to a
semi-private environment where I don't want to leave a password on the
disk, and the use of two ISPs and more than one access locations. This
batch file *does* require 4DOS and ends in various zip files which can be
taken home or processed by a yarn batch file.
Chaoyang Liao
=====
set home=c:\w\soup
%home%\
if .%2==.r goto clr
set f=*.msg
gosub cleanup
if exist areas del areas >nul
:clr
set f=?1?.zip
gosub cleanup
:all
unset /q p v f
if .%1==.n goto ispn
if .%1==.h goto isph
goto err
:ispn
set nntpserver=netnews.isp.n
gosub doset
if .%2==.r goto nrep
souper %v -k 1000 -l 200 -N n.rc cc.isp.n myname %p
if exist *.msg pkzip -m n1%f areas *.msg
goto bye
:nrep
if exist reply.msg goto nr
if not exist r.zip goto die
pkunzip -d r.zip
:nr
souper -s -m -n cc.isp.n %p
goto bye
:isph
set nntpserver=netnews.isp.h
gosub doset
if .%2==.r goto hrep
souper %v -k 1000 -l 200 -N h.rc cc.isp.h myname %p
if exist *.msg pkzip -m h1%f areas *.msg
goto bye
:hrep
if exist reply.msg goto hr
if not exist r.zip goto die
pkunzip -d r.zip
:hr
souper -s -m -n cc.isp.h %p
goto bye
:die
echo No soup file!
goto bye
:pw
input /p PWD: %%p
return
:cleanup
set p=y
if not exist %f return
inkey /k"yn" /w5 Clean up %f?[*yn] %%p
if not .%p==.y goto bye
del %f >nul
return
:doset
if .%2==. `gosub pw^return`
if .%2==.r `gosub pw^return`
if .%2==.c `set v=-m -c 0^return`
set f=%2
if .%2==.m `set v=-n^gosub pw^return`
if .%2==.n `set v=-m^return`
:err
echo SOUP n/h n/m/r/c
echo n:ispN n:news only r:reply
echo h:ispH m:mail only c:catch up
:bye
unset /q p v f^quit