luca94 (Normal User)
Pro
Messaggi: 71
Iscritto: 07/05/2008
|
Ciao a tutti,
sto creando un semplicissimo file batch, ma ho un problema!
Ecco il codice:
Codice sorgente - presumibilmente Delphi |
@echo off choice Effettua una scelta /c:ab if ERRORLEVEL 1 goto err1 if ERRORLEVEL 2 goto err2 :err1 echo Hai scelto il Proemio dell'Iliade echo. pause goto close :err2 echo Hai scelto il proemio dell'Odissea echo. pause goto close
|
Dove è l' errore?
Se scelgo a, mi esce "Hai scelto il proemio dell' Iliade"
Se scelgo b esce la stessa cosa!!!!
Come devo fare???
Grazie!!!
Ultima modifica effettuata da Shutdown il 19/05/2008 alle 0:30 |
|
klez91 (Normal User)
Pro
Messaggi: 117
Iscritto: 04/05/2008
|
Forse rispondo un po in ritardo e magari tu avrai già risolto, beh purtroppo leggo solo adesso questo post e visto che mi va di rispondere, rispondo, magari potrebbe servire a qualcun altro che legge il post.
Dunque non so che sistema operativo usi ma a meno che tu non l'abbia importato dal vecchio 98, in Xp no esiste il comando choice. Purtroppo siccome sono nativo di xp non so come risponderti per quanto riguarda choice, ma posso aiutarti a trovare una soluzione: invece di utilizzare choice basta semplicemente dichiarare una variabile ( con il comando "set", credo sia presente anche nel 98, scusatemi se sbaglio) il cui valore è l'input della tastiera e poi in base al valore scegliere quali operazioni fare in questo modo:
Codice sorgente - presumibilmente Delphi |
@echo off echo Effettua una scelta a,b set /p Var= if %Var% == "a" goto err1 else goto err2 :err1 echo Hai scelto il Proemio dell'Iliade echo. pause GoTo Close :err2 echo Hai scelto il proemio dell'Odissea echo. pause GoTo Close
|
Spero di esserti stato d'aiuto. Ciao
|
|
carrone (Normal User)
Newbie
Messaggi: 5
Iscritto: 10/03/2010
|
klez91 io ho provato a usare le tue srtinghe ma non funzionano avviene sempre lo stesso problema!
|
|
teomangia (Normal User)
Newbie
Messaggi: 8
Iscritto: 17/03/2010
|
Come dice Klez91 il batch si modifica a seconda del Sistema Operativo.
Per quanto riguarda XP si scrive in questo modo:
Codice sorgente - presumibilmente Delphi |
@echo off Set /p _var=Effettua una scelta a,b ? If [%_var%] == [a] (goto :err1) Else (goto :err2) :err1 echo Hai scelto il Proemio dell'Iliade echo. pause GoTo :eof :err2 echo Hai scelto il proemio dell'Odissea echo. pause GoTo :eof
|
|
|
carrone (Normal User)
Newbie
Messaggi: 5
Iscritto: 10/03/2010
|
giusto
|
|
carrone (Normal User)
Newbie
Messaggi: 5
Iscritto: 10/03/2010
|
ma se per esempio vorrei fare 3 o peggio 4 scelte
|
|
teomangia (Normal User)
Newbie
Messaggi: 8
Iscritto: 17/03/2010
|
Postato originariamente da carrone:
ma se per esempio vorrei fare 3 o peggio 4 scelte |
Allora, come ti è stato spiegato, non è disponibile il comando ideale a svolgerlo e cioè CHOICE (è possibile installarlo a parte, ma ora non ricordo come).
Puoi ovviare inserendo tanti IF quante sono le scelte possibili, tenendo conto che un programma che si rispetti deve verifcare anche gli errori o scelte non valide.
Per questo il batch che hai visto prima è funzionante, ma non certo corretto. |
|
marcozzo (Normal User)
Newbie
Messaggi: 14
Iscritto: 28/03/2010
|
manca il Choice:
lo puoi trovare su System 32
|
|