Utilisation de la commande "Choice" de DosBox

Réduire
X
 
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages
  • thebird
    Peon

    • septembre 2007
    • 14

    #1

    Utilisation de la commande "Choice" de DosBox

    Salut, je viens lancer un appel à l'aide, car mes connaissance en Dos remonte à il y a trés longtemps et j'ai un peu de mal avec la commande Choice de DosBox: Je m'explique j'ai créé un menu batch (.bat) ainsi pour automatiser un peu le lancement de mes jeux abandonware.
    ********
    Menu.bat
    ********
    @echo off
    :menu
    cls
    echo lancer Kyrandia 3 Tapez 1
    echo lancer Discworld 2 Tapez 2
    echo lancer Duke Nukem 3D Tapez 3
    echo Quitter ce menu Tapez 4
    choice /c:1234 Que voulez vous lancer ?
    if errorlevel=1 goto kyr3
    if errorlevel=2 goto dw2
    if errorlevel=3 goto dk3D
    if errorlevel=4 goto fin
    :kyr3
    kyr3.bat
    goto menu
    :dw2
    disc2.bat
    goto menu
    :dk3D
    Duke3d.exe
    goto menu
    :fin


    J'ai créé ensuite plusieurs autres fichiers bat pour chaque jeu dont voici 2 exemples
    *********
    exemple 1 (Kyr3.bat)
    *********
    @echo off

    imgmount D: D:\IMGDOS\Kyrandia3\Kyrandia3.iso -t iso
    cd Malcolm
    main.exe


    **********
    exemple 2 (disc2.bat)
    **********
    @echo off

    imgmount D: D:\IMGDOS\Discworld\Discw21.iso -t iso
    cd Dw2
    call DW2.bat


    On constate que mes images .ISO sont dans mon D:\IMGDOS

    Quand le menu est lancé via le Dosbox.conf de DosBox, tous est parfait à l'écran, j'appuie sur la touche 1 et le jeu kyrandia 3 se lance sans probleme.
    Or, si j'appuie sur la touche 2 .... c'est toujours kyrandia3 qui se lance, et
    ainsi de suite que ce soit en appuyant sur 3 ou 4.
    C'est systématiquement Kyrandia 3 qui se lance quelque soit la touche enfoncée ??
    Pour les nostalgique du DOS, où peut bien se situer mon erreur ???
    Merci d'avance

    En attendant, je fonctionne avec un autre menu basé uniquement sur la commande ECHO, qui fonctionne trés bien, mais qui oblige à taper le nom du bat de lancement, la fonction "Choice" permet un lancement plus souple... d'où mes essais
    Dernière modification par thebird, 08 octobre 2007, 11h43.
  • Victor
    Nettoyeur


    • mars 2004
    • 5316

    #2
    Il semble que c'est la commande choice elle-même qui soit défaillante.
    Quoi que l'on choisisse la commande renvoie le résultat 1 pour ERRORLEVEL

    L'astuce (donnée sur le forum de Dosbox) c'est de lister les choix dans l'ordre décroissant
    Et il faut juste mettre errorlevel suivi de la valeur

    Dans ton cas:

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



    ********
    Menu.bat
    ********
    @echo off
    :menu
    cls
    echo lancer Kyrandia 3 Tapez 1
    echo lancer Discworld 2 Tapez 2
    echo lancer Duke Nukem 3D Tapez 3
    echo Quitter ce menu Tapez 4
    choice /c:1234 Que voulez vous lancer ?
    if errorlevel 4 goto fin
    if errorlevel 3 goto dk3D
    if errorlevel 2 goto dw2
    if errorlevel 1 goto kyr3
    :kyr3
    kyr3.bat
    goto menu
    :dw2
    disc2.bat
    goto menu
    :dk3D
    Duke3d.exe
    goto menu
    :fin
    Bon ben je vais aller nettoyer les pc !

    Commentaire

    • thebird
      Peon

      • septembre 2007
      • 14

      #3
      Bon, alors, bizarrement, aprés avoir inversé l'ordre des commandes, seules les touches 1 et 4 font bien ce qu'on leur demande mais aucune réponse pour la 2 et la 3, il ne se passe rien.. comprend toujours pas...

      Commentaire

      • Victor
        Nettoyeur


        • mars 2004
        • 5316

        #4
        Mieux vaut utiliser des lettres pour les choix que des chiffres.
        Bon ben je vais aller nettoyer les pc !

        Commentaire

        • thebird
          Peon

          • septembre 2007
          • 14

          #5
          Apparemment, avec des lettres le script ne marche pas, il n'accepte que des valeurs numériques. J'ai recommencé mes essais et maintenant, ca marche au poil... je vais pouvoir faire mes commandes simplifiées de démarrage.. Avec de l'aide et de l'opiniatreté, on arrive à tout, merci pour les tuyaux..
          Dernière modification par thebird, 09 octobre 2007, 08h13.

          Commentaire

          • spartacus
            Dark Knight

            • août 2004
            • 417

            #6
            thebird tu peut me montrer comment tu a fait svp car chez moi j'arrive pas a le faire fonctionner.

            merci

            Commentaire

            • thebird
              Peon

              • septembre 2007
              • 14

              #7
              Envoyé par spartacus Voir le message
              thebird tu peut me montrer comment tu a fait svp car chez moi j'arrive pas a le faire fonctionner.
              merci
              Alors, voici le script tel qu'il est lancé :

              @echo off
              cls

              :menu
              echo Lancer Kyrandia 3, Tapez 1
              echo Lancer Discworld 2, Tapez 2
              echo Lancer Duke Nukem 3D, Tapez 3
              echo Lancer Operation stealth Tapez 4
              echo Lancer Eye of beholder 3 Tapez 5
              echo Quitter ce menu, Tapez 6
              echo ***************************************************************
              echo Rappel: Pour passer en mode plein ecran, appuyez sur ALT+Entree
              echo ***************************************************************

              choice /c:123456 Que voulez vous lancer ?

              if errorlevel 6 goto fin
              if errorlevel 5 goto eob3
              if errorlevel 4 goto stealth
              if errorlevel 3 goto dk3D
              if errorlevel 2 goto dw2
              if errorlevel 1 goto kyr3

              :kyr3
              kyr3.bat
              goto menu

              :dw2
              disc2.bat
              goto menu

              :dk3D
              Duke3d.bat
              goto menu

              :stealth
              opst.bat
              goto menu

              :eob3
              eob3.bat
              goto menu

              :fin
              echo\



              Pour les scripts .bat concernant chaque jeu, il suffit de consulter le premier post de ce topic, j'en donne deux en exemple...
              Victor avait raison, il faut inverser l'ordre de la liste des "errorlevel" dans le script
              Juste pour rappel, la dernière commande en bas ( echo\ ) sert à faire un retour chariot de prompteur si c'est la touche "Quitter ce menu" qui est enfoncée.. (la 6 ici)

              Ce script de lancement (baptisé "menu.bat") est bien entendu lancé via la partie [autoexec] du fichier dosbox.conf dans le répertoire de dosbox. Ainsi, il se lance dès le démarrage de DosBox, mais ça, c'est pas une nouveauté...
              Voilà ..

              Commentaire

              • spartacus
                Dark Knight

                • août 2004
                • 417

                #8
                merci je vais tester ca

                Commentaire

                Chargement...