Forum Clubic

Liste de choix dans un fichier .bat - Pour Norton Ghost

Après avoir trouvé comment splitter une image ghost à la taille que l’on souhaite, j’aimerais pouvoir faire une liste de choix au boot de la disquette Ghost

Voici le fichier actuel :

@echo off
SET TZ=GHO-01:00
GUEST.EXE
MOUSE.COM
echo Chargement...
CD GHOST
GHOST.EXE -SPLIT=701

J’aimerais donc au lieu de l’exécution automatique de la dernière ligne, avoir une liste de choix me permettant d’exécuter au choix l’une de ces lignes de commande :

GHOST.EXE -SPLIT=650
GHOST.EXE -SPLIT=703
GHOST.EXE -SPLIT=1490

Actuellement je dois soit quitter Ghost pour exécuter “à la main” une autre ligne, soit shooter l’exécution auto et le faire “à la main”.

Je sais que c’est faisable, mais mon maigre niveau et google ne m’ont pas aidé :frowning:

Appuie toi sur cet exemple:

:menu
echo A - Compilez un fichier source
echo B - Exécutez un fichier classe
echo C - Consultez un fichier source
echo D - Quittez le menu
echo E - Fermez la console

choice /c:abcde
if "%errorlevel%"=="A" goto compil
if "%errorlevel%"=="B" goto exec
if "%errorlevel%"=="C" goto edite
if "%errorlevel%"=="D" goto fin
if "%errorlevel%"=="D" goto quit

:compil
javac %1.java
goto menu

:exec
java %1
goto menu

:edite
edit %1.java
goto menu

:quit
exit

:fin

C:\>choix fichier

:wink:

http://www.laltruiste.com/document.php?url…hier_batch.html

:jap: je vais tester ça :smiley:

Il me dit que la commande “choice /c:abc” est incorrecte, pourtant j’ai recopié comme dans ton exemple.

@echo off
SET TZ=GHO-01:00
GUEST.EXE
MOUSE.COM
echo Chargement...
CD GHOST
:menu
echo A - Splitter pour gravure sur DVD (1490 Mo)
echo B - Splitter pour gravure sur CD (701 Mo)
echo C - Splitter pour gravure sur CD (650 Mo)

choice /c:abc
if "%errorlevel%"=="A" goto dvd
if "%errorlevel%"=="B" goto cda
if "%errorlevel%"=="C" goto cdb

:dvd
GHOST.EXE -SPLIT=1490
goto fin

:cda
GHOST.EXE -SPLIT=701
goto fin

:cdb
GHOST.EXE -SPLIT=650

:fin

Tu as bien le fichier choice.com dans PATH ?

Autant pour moi j’avais pas vu le fichier dispo en téléchargement :ane:
J’ai cru que c’était une fonction de DOS :ane:

Je reteste avec :jap:

Ca fonctionne [:love] :jap:

Bon ben j’ai parlé un peu vite hier, car ça fonctionne qu’à moitié :frowning:

Voilà le code de l’autoexec.bat :

@echo on
SET TZ=GHO-01:00
GUEST.EXE
MOUSE.COM
:menu
echo 1 - Splitter pour gravure sur DVD (1490 Mo)
echo 2 - Splitter pour gravure sur CD (700 Mo)
echo 3 - Splitter pour gravure sur CD (650 Mo)
echo 4 - Splitter pour sauvegarde sur ZIP 100 (94 Mo)
echo 5 - Splitter au choix : Taper "GHOST -SPLIT=X", "X" étant la taille en Mo

choice /c:12345
if "%errorlevel%"=="1" goto dvd
if "%errorlevel%"=="2" goto cda
if "%errorlevel%"=="3" goto cdb
if "%errorlevel%"=="4" goto zip
if "%errorlevel%"=="5" goto autre

:dvd
CD GHOST
GHOST.EXE -SPLIT=1491
goto fin

:cda
CD GHOST
GHOST.EXE -SPLIT=701
goto fin

:cdb
CD GHOST
GHOST.EXE -SPLIT=651

:zip
CD GHOST
GHOST.EXE -SPLIT=95
goto fin

:autre
CD GHOST
goto fin

:fin
echo Chargement...

Le menu fonctionne bien, mais quel que soit mon choix il m’exécute les commandes du :dvd au lieu de celle que j’ai choisi :frowning:
J’ai fait une boulette je suppose, mais je n’arrive pas à trouver laquelle.

C’est sur le test du ErrorLevel qui pose problème:
voir la syntaxe:
http://1100f.free.fr/Batchs/la_commande_errorlevel.htm

La syntaxe (que je connaît) pour utiliser ErrorLevel est.
IF ERRORLEVEL 255 GOTO Label255
IF ERRORLEVEL 254 GOTO Label254

en fait il faut tester du plus gan au plus petit, car la fonction if errorLevel test si le code est supérieur ou égal à la valeur que tu donne.

Voilà ce qui devrait marcher à mon avis :wink:

merci de cette info :jap:

je vais tester ça :smiley:

Effectivement, en inversant le choix des options ça fonctionne :super: