Merci du conseil, mais je l'ai fait et pas de message d'erreur.
La ligne de commande du programme renvoi sur une autre commande et pouf, ma fenêtre se ferme sans plus
ECHO OFF
IF EXIST UNPACK.IT CALL UNPACK
IF NOT "%OS%"=="Windows_NT" goto notnt
SET CLIPPER=
IF "%CUBIC%" == "" GOTO GETUSER
pause
IF NOT EXIST USER%CUBIC%.MEM GOTO GETUSER
IRECT
IF ""=="%1" forcedos SYSTEM /MODENT 1
IF ""=="%1" GOTO BRANCH
IF "%1"=="1" GOTO COMPTA
IF "%1"=="2" GOTO FAC
IF "%1"=="3" GOTO ANA
IF "%1"=="4" GOTO BUD
IF "%1"=="5" GOTO BAN
IF "%1"=="6" GOTO SYSTEM
IF "%1"=="7" GOTO AMORT
IF "%1"=="8" GOTO REGROUP
IF "%1"=="9" GOTO ANALBI
IF "%1"=="10" GOTO ANALTIME
IF "%1"=="89" GOTO RETPROBACK
IF "%1"=="0" GOTO DELUSER
GOTO END
:BRANCH
IF ERRORLEVEL 105 GOTO END
IF ERRORLEVEL 103 GOTO FACLISTE
IF ERRORLEVEL 102 GOTO BAKUP
IF ERRORLEVEL 101 GOTO GRAF
IF ERRORLEVEL 89 GOTO PROBACK
IF ERRORLEVEL 81 GOTO PRO1
IF ERRORLEVEL 10 GOTO ANALTIME
IF ERRORLEVEL 9 GOTO ANALBI
IF ERRORLEVEL 8 GOTO REGROUP
IF ERRORLEVEL 7 GOTO AMORT
IF ERRORLEVEL 6 GOTO SYSTEM
IF ERRORLEVEL 5 GOTO BAN
IF ERRORLEVEL 4 GOTO BUD
IF ERRORLEVEL 3 GOTO ANA
IF ERRORLEVEL 2 GOTO FAC
IF ERRORLEVEL 1 GOTO COMPTA
GOTO END
:COMPTA
SET CUBCPT=/OO
rem /CE100% /CX256
SET CLIPPER=
forcedos CPT /MODENT
SET CUBCPT=
GOTO BRANCH
:FAC
SET CUBFAC=/OO
SET CLIPPER=
forcedos FAC /MODENT
SET CUBFAC=
GOTO BRANCH
:ANA
SET CLIPPER=
forcedos ANA /MODENT
GOTO BRANCH
:BUD
SET CLIPPER=
forcedos BUD /MODENT
GOTO BRANCH
:BAN
SET CLIPPER=
forcedos BAN /MODENT
GOTO BRANCH
RO
SET PROSPECT=
SET CLIPPER=E000;V020
IF EXIST PRLOGO%CUBIC%.MEM ERASE PRLOGO%CUBIC%.MEM
if exist memoinst.mem goto prinstall
GOTO PRO0
RINSTALL
forcedos INSTPRO
ERASE UNPRO.BAT
ERASE INSTPRO.BAT
GOTO STOP
RO0
ForceDos PRO
GOTO BRANCH
RO1
forcedos UTPRO
IF ERRORLEVEL 89 GOTO PROBACK
GOTO PRO0
ROBACK
forcedos PROINT
:RETPROBACK
SET CLIPPER=E000;V020
forcedos UTPRO BACKUP
IF ERRORLEVEL 89 GOTO PROBACK
GOTO PRO0
:AMORT
SET CLIPPER=E000
CALL CUBAMO.BAT
GOTO BRANCH
:REGROUP
SET CLIPPER=E000
CALL CUBREG.BAT
GOTO BRANCH
:ANALBI
SET ANALBI=/CE1024,0 /CX1024,0 /OO30 /OU1 /OP1
CUBANA 1
SET ANALBI=
GOTO BRANCH
:ANALTIME
SET ANALTIME=/CE1024,0 /CX1024,0 /OO31 /OU1 /OP1
CUBTIME 1
SET ANALTIME=
GOTO BRANCH
:RRI
SET CLIPPER=E000;V020;F040
SET RRBAT="RRUNTIME"
SET RRISET=/CX2048,0 /CE2048,0 /OU1 /OP1
CALL CUBRRI.BAT
SET RRISET=
SET RRBAT=
GOTO BRANCH
:SYSTEM
SET CLIPPER=
forcedos SYSTEM /MODENT
GOTO BRANCH
:GRAF
SET CLIPPER=E000
CPTGRAF
IF ERRORLEVEL 1 USER%CUBIC%
GOTO COMPTA
:BAKUP
IF EXIST USER%CUBIC%.MEM ERASE USER%CUBIC%.MEM >NUL
set clipper=E000
USER%CUBIC%
GOTO UTIL
:GETUSER
REM GET USER NUMBER (MAX 25)
REM =========================
SET CUBIC=99
IF "%CUBIC%"== "" GOTO END
for %%Z in (05 04 03 02 01) DO IF NOT EXIST USER%%Z.MEM SET CUBIC=%%Z
IF "%CUBIC%" == "99" GOTO GETMORE
:CREATE
REM CREATE USER.MEM FILE
REM ====================
IF EXIST USER%CUBIC%.MEM GOTO END
COPY GEN\USERMEM.GEN USER%CUBIC%.MEM >NUL
IF EXIST USER%CUBIC%.BAT ERASE USER%CUBIC%.BAT >NUL
IF EXIST SYSTEM%CUBIC%.BAT ERASE SYSTEM%CUBIC%.BAT > NUL
GOTO DIRECT
:BADRAM
ECHO NOT ENOUGH MEMORY (MIN RAM : 500 Kbytes)
GOTO END
:GETMORE
for %%Z in (10 09 08 07 06) DO IF NOT EXIST USER%%Z.MEM SET CUBIC=%%Z
IF NOT "%CUBIC%"=="99" GOTO CREATE
for %%Z in (15 14 13 12 11) DO IF NOT EXIST USER%%Z.MEM SET CUBIC=%%Z
IF NOT "%CUBIC%"=="99" GOTO CREATE
for %%Z in (20 19 18 17 16) DO IF NOT EXIST USER%%Z.MEM SET CUBIC=%%Z
IF NOT "%CUBIC%"=="99" GOTO CREATE
for %%Z in (25 24 23 22 21) DO IF NOT EXIST USER%%Z.MEM SET CUBIC=%%Z
IF NOT "%CUBIC%"=="99" GOTO CREATE
ECHO NO USERS LEFT
GOTO END
ELUSER
DEL USER??.MEM
ECHO ALL USER??.MEM DELETED
GOTO END
:NOTNT
Echo þ þ
Echo þ This program needs Windows NT to run þ
Echo þÿ þ
Echo
GOTO stop
:END
IF "%CUBIC%"=="" GOTO STOP
IF EXIST USER%CUBIC%.MEM ERASE USER%CUBIC%.MEM >NUL
IF EXIST USER%CUBIC%.BAT ERASE USER%CUBIC%.BAT >NUL
IF EXIST LISTES%CUBIC%.MEM ERASE LISTES%CUBIC%.MEM >NUL
set cubic=
:STOP
SET CLIPPER=
Voilà le code complet
La fenêtre se ferme à cette ligne là : IF "%CUBIC%" == "" GOTO GETUSER
Merci de votre aide