MS DOS batch menu automatische keuze

Status
Niet open voor verdere reacties.

MAX232

Gebruiker
Lid geworden
29 dec 2001
Berichten
532
Hi allemaal,

ik heb in een batch bestandje geschreven met een menuutje erin. Afhankelijk van de keuze wordt er een programma gestart. So far so good.

Wat ik graag wil is als er geen keuze gemaakt wordt binnen 10 seconden er een automatische keuze gemaakt wordt. Weet iemand hoe dat moet?

Dit is de code van het keuze menu:

---------------------------------------------------------

set choice=
set /p choice=Choose your procedure:
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto startff
if '%choice%'=='2' goto startagl
if '%choice%'=='3' goto startmso
if '%choice%'=='4' goto startall
if '%choice%'=='5' goto startexit
ECHO "%choice%" is not valid please try again
ECHO.
 
In batch is dit niet mogelijk omdat het in feite een dos emulator is.
In MS-DOS had je nog geen multi-tasking, dit houd in dat het niet 2 opdrachten/programma's tegelijk kan uitvoeren. Ofwel, hij kan niet wachten op een input, én aftellen tegelijk.
In C++ is dit echter wel mogelijk, maar dan moet je vrij ingewikkelde API calls doen.
 
Plan-1130 zei:
In batch is dit niet mogelijk omdat het in feite een dos emulator is.
In MS-DOS had je nog geen multi-tasking, dit houd in dat het niet 2 opdrachten/programma's tegelijk kan uitvoeren. Ofwel, hij kan niet wachten op een input, én aftellen tegelijk.
In C++ is dit echter wel mogelijk, maar dan moet je vrij ingewikkelde API calls doen.

Het kan wel maar niet met de standaard tools dos commando's.
Tijd geleden ook zoiets gemaakt onder Linux: Maak (in een willekeurige taal) een executable die 10 seconden wacht op input en hierna een keuze maakt. De truuk is dat je continue de input scant(?) op het eerste karakter. Als je de hoeveelheid seconden enzo als variabelen meeneemt krijg je een leuk tooltje!

Weest gegroet,
Guus
 
Laatst bewerkt:
In Batch is het niet mogelijk, in een andere taal waarschijnlijk wel.
Daarbij komt ook dat Batch überhaupt niet kan aftellen.

Je kunt het inderdaad zonder ingewikkelde API calls, en zoals jij het zegt is het mogelijk, maar niet superhandig, omdat je dan 2 bestandjes mee moet sturen...
 
In Batch is het niet mogelijk, in een andere taal waarschijnlijk wel.
Daarbij komt ook dat Batch überhaupt niet kan aftellen.

Je kunt het inderdaad zonder ingewikkelde API calls, en zoals jij het zegt is het mogelijk, maar niet superhandig, omdat je dan 2 bestandjes mee moet sturen...


:wait
echo Je heb nog %wait% seconds om te kiezen
PING 1.1.1.1 -n 1 -w 1000 >NUL
set /a wait=%wait% - 1
if %wait%==0 (
goto (AUTOMATISCHE KEUZE HIER INVULLEN)
)
goto wait

zo telt hij toch af?
 
Dat is een van de weinige methodes om secondes te wachten in CMD, alleen dat stukje zal niet worden uitgevoerd zolang de gebruiker geen keuze heeft gemaakt in het set /p choice commando.

Dat commando blijft gewoon eeuwig wachten op input van de gebruiker en dus niet met een timer te sturen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan