Bat-tiedosto/menu-toiminto

  • Keskustelun aloittaja Keskustelun aloittaja Cumbo
  • Aloitettu Aloitettu
Liittynyt
31.05.2017
Viestejä
4 619
En yhtäkkiä löytänyt sopivaa ketjua, joten tehdäänpä uusi. Eli: pitäisikö bat-tiedostossa toimia menu-toimintoa käyttäessä muut kuin numerot? Alla olevassa 1-9 toimivat hyvin, mutta a, b, c ja x eivät toimi.


echo off

:menu
cls

echo.

echo 1 tekstiä
echo 2 tekstiä
echo 3 tekstiä
echo 4 tekstiä
echo 5 tekstiä
echo 6 tekstiä
echo 7 tekstiä
echo 8 tekstiä
echo 9 tekstiä
echo a tekstiä
echo b tekstiä
echo c tekstiä
echo x tekstiä
echo.
echo.

choice /C 123456789abcx /M "Valitse seuraavista: "
goto menu%errorlevel%

:menu1
goto tekstiä

:menu2
goto tekstiä

:menu3
goto tekstiä

:menu4
goto tekstiä

:menu5
goto tekstiä

:menu6
goto tekstiä

:menu7
goto tekstiä

:menu8
goto tekstiä

:menu9
goto tekstiä

:menua
goto tekstiä

:menub
goto tekstiä

:menuc
goto tekstiä

:menux
goto tekstiä

.
.
.
 
Kyllä pitäisi toimia...

/c <choice1><choice2><…>Specifies the list of choices to be created. Valid choices include a-z, A-Z, 0-9, and extended ASCII characters (128-254).

Mutta
The ERRORLEVEL environment variable is set to the index of the key that the user selects from the list of choices.

As you've seen the choice command only lets the user type one character. Also, the choice command sets the errorlevel to the POSITION of the character in the possible-values string. I.E. choice /C "1230" would set the errorlevel to 1, 2, 3 or 4 respectively.


Ja ei tuosta ainakaan selvinnyt, että miten paljon se tukee noita valintoja kaikkiaan, eli meneekö yli 9 tuo index edes.

Eli jos haluat käyttää myös kirjaimia koodissa (helpompi lukea jälkikäteen), niin lienee helpompaa lukea suoraan SET komennolla käyttäjän valinta ja sen mukaan sitten toimia, kuten täällä on ehdotettu.

 

Statistiikka

Viestiketjuista
261 700
Viestejä
4 544 522
Jäsenet
74 831
Uusin jäsen
Panasonic

Hinta.fi

Back
Ylös Bottom