Avatar billede clb92 Nybegynder
10. juli 2010 - 01:41 Der er 2 kommentarer og
1 løsning

Batch - Choice med "hvis ikke" (lidt quiz-agtigt)

Hej allesammen,

Jeg har et problem med noget, jeg ikke kan finde ud af at sætte ordentligt op i batch. Eksempel:

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

@echo off

:start
cls
ECHO.
ECHO ///// First Question! \\\\\
ECHO.
ECHO Question goes here:
ECHO.
ECHO.
set choice=
set /p choice=Type the answer: 
ECHO.
if not '%choice%'=='' set choice=%choice:~0,1%

if '%choice%'=='1' goto A
if '%choice%'=='2' goto B
if '%choice%'=='3' goto C
if '%choice%'=='4' goto D
if '%choice%'=='11' goto E

ECHO "%choice%" is not valid please try again.
ECHO.
PAUSE
GOTO start

...osv.

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

Nogle ideer? (Dette var bare et eksempel, og derfor ikke opstillet med korrekte kommandoer...)

Hvis jeg taster at svaret er 11 goto'er den bare til label A som hvis svaret var 1. Altså den skal understøtte svar der er af flere characters.
Samtidig skal den give besked (ligesom ovenfor) hvis svaret ikke er valid, men det er ikke lykkedes for mig at lave ordentligt...


Håber I kan hjælpe! På forhånd tak!
(Jeg håber dette var den rigtige kategori)
Avatar billede heinzdmx Nybegynder
11. juli 2010 - 19:56 #1
hvis du fjerner:

if not '%choice%'=='' set choice=%choice:~0,1%

Så afrunder den ikke, hvilket gør at du kan indtaste flere tal.

Du kan sagtens læse flere bogstaver.

Du kan i stedet for det, lave den sidste GOTO som f.eks.

goto unknow

:unknown
Echo ikke kendt?
Goto hvor-du-nu-skal-hen

og sådan.

Da den sidste kun bliver udført, hvis de andre ikke er blevet udført, vil det stadig være muligt at filtre det forkerte fra.

Samlet:
---------------

@echo off

:start
cls
ECHO.
ECHO ///// First Question! \\\\\
ECHO.
ECHO Question goes here:
ECHO.
ECHO.
set choice=
set /p choice=Type the answer: 
ECHO.

if '%choice%'=='1' goto A
if '%choice%'=='2' goto B
if '%choice%'=='3' goto C
if '%choice%'=='4' goto D
if '%choice%'=='11' goto E
Goto unknown

:unknown
ECHO "%choice%" is not valid please try again.
ECHO.
PAUSE
GOTO start

:A
...
Avatar billede clb92 Nybegynder
11. juli 2010 - 20:11 #2
Tusind tak for hjælpen!
Det er fedt med sådan et forum, hvor folk gider hjælpe hinanden :)

Smid et svar!
Avatar billede heinzdmx Nybegynder
11. juli 2010 - 20:15 #3
Så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Cognizant Technology Solutions Denmark ApS

Test Manager

Udviklings- og Forenklingsstyrelsen

Infrastrukturspecialist til tværfagligt team

Intempus

iOS developer

Politiets Efterretningstjeneste

DevOps Softwareudviklere