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.
Ik zeg: whatever...
MAX
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.Origineel gepost door Plan-1130
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 aangepast door Guus2005 : 7 juli 2006 om 11:24
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...
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