Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569

    [BATCH] - Choice - problema

    Salve, sto creando un programmino in batch ma non so come inserire più opzioni rispetto a 1 2 3 4 5 6 7 8 9.
    Questo è quello che ho:

    codice:
    CHOICE /C 123456789 /N /M "La tua scelta> "
    IF ERRORLEVEL 9 ECHO Prova errorlevel 9
    IF ERRORLEVEL 8 ECHO Prova errorlevel 8
    IF ERRORLEVEL 7 ECHO Prova errorlevel 7
    IF ERRORLEVEL 6 ECHO Prova errorlevel 6
    IF ERRORLEVEL 5 ECHO Prova errorlevel 5
    IF ERRORLEVEL 4 ECHO Prova errorlevel 4
    IF ERRORLEVEL 3 ECHO Prova errorlevel 3
    IF ERRORLEVEL 2 ECHO Prova errorlevel 2
    IF ERRORLEVEL 1 ECHO Prova errorlevel 1
    Il problema è che se inserisco uno 0, sia all'inizio che alla fine, mi da errore e visualizza cose invece che altre e se metto A o una qualsiasi altra lettera nelle opzioni sia all'inizio che alla fine, mi da il seguente errore: A non atteso. Sintassi del comando errata. File non trovato.
    E poi mi genera un loop di messaggi "Prova errorlevel 1.... " etc...
    Mi aiutate??

  2. #2
    Io fossi in te userei set /p.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Facendo SET /P SCELTA=la tua scelta^> , otterrei un problema:
    codice:
    IF %SCELTA% == "" GOTO SCELTA_ERROR
    REM ....
    è vero, mi leverei di mezzo quel problema ma come si fa a fare delle OR?
    Insomma, %SCELTA% deve essere per forza solo un numero compreso tra 1 e 9 e non delle lettere e fare una lunga serie di IF NOT sarebbe un kasino e sarebbe anche non corretto.
    Come fare delle "OR"?

  4. #4
    codice:
    :INIZIO
    SET /P SCELTA=la tua scelta^>
    IF %SCELTA%==1 GOTO SCELTA1
    IF %SCELTA%==2 GOTO SCELTA2
    IF %SCELTA%==3 GOTO SCELTA3
    IF %SCELTA%==4 GOTO SCELTA4
    IF %SCELTA%==5 GOTO SCELTA5
    IF %SCELTA%==6 GOTO SCELTA6
    IF %SCELTA%==7 GOTO SCELTA7
    IF %SCELTA%==8 GOTO SCELTA8
    IF %SCELTA%==9 GOTO SCELTA9
    REM Se siamo arrivati qui è stato inserito un valore non valido.
    ECHO Valore non valido!
    GOTO INIZIO
    :SCELTA1
    ECHO Scelta 1.
    GOTO :EOF
    :SCELTA2
    ECHO Scelta 2.
    GOTO :EOF
    REM eccetera
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Thanx, è solo che da poco ho cominciato col batch

  6. #6
    Ti auguro anche di smettere il prima possibile, il batch è uno dei linguaggi peggio concepiti che esistano, è privo dei più elementari elementi di ogni linguaggio e incoraggia le peggiori worst-pratices.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da MItaly
    ...
    ... e oggi è praticamente inutile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    ... e ciò mi ricorda che un giorno o l'altro dovrei decidermi ad imparare ad usare PowerShell (che come LaTex e bash continuo a rimandare)...
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Veramente volevo usarlo per un test: lanciare un programma dal java

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.