quess this is more fitting forum for your post...

first (before getting to the problems) I quess some syntax cleaning could be usable.

anyway, I haven't got break on working either.
and nowadays, break off works neither!

what comes to the script not ending, you could tell us, on what os. I quess it's on win9x, right?

also, using goto is not good habit.
neither specifying exit without error code as it then reads the next stuff for errorcode.
about your brackets, if it works like:
if ingroup ["some"]

ok, but correct way would be:
if ingroup("some")

anyway, I'm not trying now to fix your code here but to make it easier for others to read it too.
so:
code:
BREAK ON
color y+/b
cls
flushkb

;SERVERSELECT
? "=================================================================="
? "COMPANYNAME, DEPARTMENT 2001"
? "een moment alstublieft..."
? "=================================================================="

select
case INGROUP("BO") GOSUB "SRV1"
case INGROUP("GO") GOSUB "SRV1"
case INGROUP("RD") GOSUB "SRV1"
case INGROUP("PU") GOSUB "SRV1"
case INGROUP("CS") GOSUB "SRV1"
case INGROUP("BW") GOSUB "SRV1"
case INGROUP("BD") GOSUB "SRV2"
case INGROUP("BR") GOSUB "SRV2"
case INGROUP("CU") GOSUB "SRV2"
case INGROUP("EX") GOSUB "SRV2"
case 1
CLS
? "=================================================================="
? "Dit script kan GEEN Printserver vinden! Misschien is er iets mis "
? "met een van de servers of met het netwerk. Neem svp contact op met"
? "de COMPANY Klantenbalie, telefoonnummer xxxxx"
? "=================================================================="
sleep 10
exit 1
endselect

color w+/b
? " De beschikbare server in deze sessie is $SERVERNAAM geworden...."
color y+/b

? "=================================================================="
cls
GOSUB PRINTERSELECT
GOSUB GO1
? "dit programma is klaar, Windows printerinstallatie is gestart..."
? "=================================================================="
exit 0

:SRV1
if exist("\\SERVER1\HIDDEN$\CHECK.TXT")
$SERVERNAAM = "SERVER1"
ELSE
$SERVERNAAM = "SERVER2"
ENDIF
RETURN

:SRV2
if exist ["\\SERVER2\HIDDEN$\CHECK.TXT"]
$SERVERNAAM = "SERVER2"
ELSE
$SERVERNAAM = "SERVER1"
ENDIF
RETURN

:PRINTERSELECT
? "=================================================================="
? "toets de Printernaam in, dit staat op iedere printer op een"
? "sticker, en begint altijd met PR0nummer [voorbeeld: PR0511]"
? "als U de juiste printer heeft ingevuld, druk dan op ENTER"
color W+/b
? "LET OP: EERSTE cijfer is een NUL geen letter O!"
color y+/b
? "=================================================================="

color w+/b
? "-->"
color r+/b
GETS $PRINTERNAAM
color y+/b
GOSUB PRINTERDIALOOG1
RETURN

:PRINTERDIALOOG1
cls
? "=================================================================="
? "De gekozen PRINTER naam is"
color r+/b
? "$PRINTERNAAM"
color y+/b
? "is dit juist?"
? "ENTER doorgaan, toets N[ee]om opnieuw een printerselectie te maken"
? "=================================================================="
color w+/b
? "-->"
color y+/b
GET $ANSWER1
IF $ANSWER1 = "n"
GOSUB PRINTERSELECT
ENDIF
RETURN

:GO1
SETL "PRINTERVAR=\\$SERVERNAAM\$PRINTERNAAM"
RUN "D.BAT"
RETURN

but it still has a lot of sub scripts...
quess you have worked with bats a lot [Wink]

cheers.
_________________________
!

download KiXnet