Koitan päästä alkuun batch.ien teon oppimisessa ja en keksi miten valinnat saa pelaamaan? Siten että jos valitsee 1 joutuu kohtaan 1 ja valitsee 2 niin menee kohtaan 2 jne.. ja homman pitäis pelata luuppina kaiken jälkeen alkuun mutta aina tulee vain 1 valitsi 1-2 tai 3, ja siihen se myös jää :/ Kaikkihan tuossa koodissa on varmaan pielessä mutta mitkä? ->>
@ECHO OFF
TITLE Harjoitus 3.0
COLOR 1F
echo 1. kohta
echo 2. kohta
echo 3. kohta
@ECHO OFF
pause > nul
:alku
if not errorlevel 1 goto eka
if not errorlevel 2 goto toka
if not errorlevel 3 goto kolmas
:eka
@ECHO OFF
cls
echo painoit 1
pause > nul
goto alku
:toka
@ECHO OFF
cls
echo painoit 2
pause > nul
goto alku
:kolmas
@ECHO OFF
cls
echo painoit 3
pause > nul
goto alku
@ECHO OFF
TITLE Harjoitus 3.0
COLOR 1F
echo 1. kohta
echo 2. kohta
echo 3. kohta
@ECHO OFF
pause > nul
:alku
if not errorlevel 1 goto eka
if not errorlevel 2 goto toka
if not errorlevel 3 goto kolmas
:eka
@ECHO OFF
cls
echo painoit 1
pause > nul
goto alku
:toka
@ECHO OFF
cls
echo painoit 2
pause > nul
goto alku
:kolmas
@ECHO OFF
cls
echo painoit 3
pause > nul
goto alku
Vastaukset 7
Vanhimmat
Jos nyt haluat alkuun päästä niin älä nyt mitään .bat tiedostoja ainakaan säädä, ne varmaan kohta poistuu kohta kun Windows ympäristöihin tuli 15v sitten VBScript ja nyt on ollut jo muutaman vuoden Powershell.
Eli jos Windowsia haluat scriptata niin Powershelliä vaan kehiin niin ei tarvitse heti opetella uusiksi. Todennäköisesti suositeltavampaa olisi scriptata Pythonilla niin ole sitten sidottu pelkkään Windowsiin ja olisi aika standardia koodia.
vanhaa tarvitse unohtaa, jos kaverilla joku vanha dos-kone ja haluaa opiskella niin mikäpä siinä.
Ongelma korjattu. Tai monikin mutta isoin oli palautusarvon puuttuminen ( choice /c:123 )
Jos tässä nyt innostuu enemmänkin niin tuo powershell vaikutti pikapuoliin katsottuna ihan passelilta. Täytynee hieman tutustua paremmin siihenkin.
nopea googlaus näytti että onkohan toi sun errorlevel oikeen.
kun porukat oli sitä mieltä että errorlevel 0 on että ohjelma on suoritettu onnistuneesti. command.com'in saa jotenkin bat tiedostojen debukkaus/testaus tilaan.
Errorlevelit täytyy testata käänteisessä
järjestyksessä tyyliin
if not errorlevel 3 goto kolmas
if not errorlevel 2 goto toka
if not errorlevel 1 goto eka
Muutakin vikaa voi olla, mutta vtuo ainakin.
Varmaan huomasitkin, if errorlevel ja if not errorlevel eron!
http://www.robvanderwoude.com/choice.php
Joo. Kyllä tuossa kokeilussani oli "sitä sun tätä mätää" mutta se toimiva koodi löytyi lopulta eli tämmöiseen päädyin->>
@echo off
title Harjoitus 3.1
:alku
cls
color 1F
echo 1. kohta
echo 2. kohta
echo 3. kohta
choice /n /c:123
if errorlevel 3 goto kolmas
if errorlevel 2 goto toka
if errorlevel 1 goto eka
:eka
cls
echo painoit 1
pause >nul
goto alku
:toka
cls
echo painoit 2
pause >nul
goto alku
:kolmas
cls
echo painoit 3
pause >nul
goto alku