At first glance, I'd make a few changes to the way your labels and endif statements are placed...

That coupled with using winset to define variables when you are only using them within kix itself.. Let kix do the hardwork...

code:

IF @INWIN="1" ; IF OS is NT
SET $CURRENTVER="5001.txt"
SET $OLDVER="5000.txt"
SET $CURRENTUPDT="UPDT5001.exe"
IF EXIST (%WINDIR%+$CURRENTVER)
GOTO "SKIP1"
ENDIF
DEL "%WINDIR%\$OLDVER"
COPY "S:\UPDT\$CURRENTVER" "%WINDIR%"
? "Updating to version "+$CURRENTVER+"..."
SHELL "S:\UPDT\"+$CURRENTUPDT

:SKIP1
SET $CURRENTAHVER="AH101b.txt"
SET $OLDAHVER="AH100n.txt"
SET $CURRENTAHUPDT="AH101b.exe"
IF EXIST (%WINDIR%+$CURRENTAHVER)
GOTO "SKIP2"
ENDIF
DEL "%WINDIR%+$OLDAHVER"
COPY "S:\UPDT\"+$CURRENTAHVER" "%WINDIR%"
? "Updating to version "+$CURRENTAHVER+"..."
SHELL "S:\UPDT\"+$CURRENTAHUPDT
endif ; end if OS = NT

:SKIP2
IF @INWIN="2" if OS is 95/98
SET $CURRENTVER="5001.txt"
SET $OLDVER="5000.txt"
SET $CURRENTUPDT="UPDT5001.exe"
IF EXIST (%WINDIR%+$CURRENTVER)
GOTO "SKIP3"
ENDIF
DEL "%WINDIR%\$OLDVER"
COPY "S:\UPDT\$CURRENTVER" "%WINDIR%"
? "Updating to version "+$CURRENTVER+"..."
SHELL "S:\UPDT\$CURRENTUPDT"
goto skip4 ; already currentver

:SKIP3
SET $CURRENTAHVER="AH101b.txt"
SET $OLDAHVER="AH100n.txt"
SET $CURRENTAHUPDT="AH101b.exe"
IF EXIST (%WINDIR%+$CURRENTAHVER)
GOTO "SKIP4"
ENDIF
DEL "%WINDIR%+$OLDAHVER"
COPY "S:\UPDT\$CURRENTAHVER" "%WINDIR%"
? "Updating to version "+$CURRENTAHVER+"..."
SHELL "S:\UPDT\$CURRENTAHUPDT"
endif ; end if OS is 95/98

:SKIP4 ; end of the updating....



------------------
Paul Moxey
POS & Senior Network Administrator
Taubmans Pty Ltd
Paul_Moxey@taubmans.com.au

_________________________
Paul Moxey POS & Senior Network Administrator BarloworldCoatings (AUST) Pty Ltd