Batch fonction choice

Résolu/Fermé
neo-genesis Messages postés 175 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 30 mai 2019 - Modifié par neo-genesis le 22/01/2014 à 15:56
 Utilisateur anonyme - 24 janv. 2014 à 16:04
Bonjour,

voila , je m'essaie depuis peu a la programmation batch pour mon propre plaisir.
J'essaie actuellement d'exécuter une defragmentation via un batch qui propose quelque choix de décision au fur et a mesure seulement le problème c'est que ce denier ne propose pas de choix et se lance lui-même dans l'exécution...
quelqu'un aurait-il une idée?

merci d'avance.

voici le source :

echo off
@cls
@color 0a
title defragmenteur de disque
echo veuillez entrer le chemin exacte.exemple : C:\ ou E: selon le volume.
echo,

:restart

set /p per= volume a analyser/defragmenter :
@cls
defrag.exe %per% /A /V

echo voulez-vous defragmenter %per% ?
echo o : oui defragmenter!
echo n : non ne pas defragmenter!

choice /c:on faites votre choix

if %errorlevel%==1 goto o
if %errorlevel%==2 goto n

:o
defrag.exe %per% /U /X /V
echo defragmentation terminer
goto fin

:n
echo changer de volume ?

echo o :changer de volume
echo n : quitter ?

choice /c:on

if %errorlevel%==1 goto restart
if %errorlevel%==2 goto fin

:fin
pause
            
                

3 réponses

Utilisateur anonyme
22 janv. 2014 à 16:04
Salut.


Choice n'est pas conseillé... Surtout que dans votre code, vous pouvez aisément ne pas l'utiliser.


Je ferais comme ceci :
echo voulez-vous defragmenter  ?
echo 1 : oui defragmenter!
echo 2 : non ne pas defragmenter!
echo.
set /p a=Faites votre choix
if %a%==1 goto defrag
if %a%==2 goto nodefrag
:defrag
echo test1
...etc..
0
neo-genesis Messages postés 175 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 30 mai 2019 71
22 janv. 2014 à 19:48
merci pour la réponse.
je débute tout juste en batch et je voudrais savoir pourquoi choice n'est pas conseiller? et il n'est pas conseiller dans ce cas présent ou de manière générale?
0
Utilisateur anonyme
22 janv. 2014 à 20:48
Salut ;)

Car choice n'existe pas sous windows XP.
Par contre, set /p si.

@+
0
neo-genesis Messages postés 175 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 30 mai 2019 71
22 janv. 2014 à 23:10
ok merci.
0
neo-genesis Messages postés 175 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 30 mai 2019 71
22 janv. 2014 à 23:39
bon.. je reviens une nouvelle fois a la charge. La je ne comprend pas d'où viendrai l'erreur, il lance l'analyse (defrag.exe /A /V) et la consolidation (defrag.exe /U /X /V ) sans intervention de ma part.

code :

echo off
@cls
@color 0a

title defragmenteur de disque

echo veuillez entrer le chemin exacte.exemple : C:\ ou E: selon le volume.
echo,

set /p per= volume a analyser/defragmenter :

echo voulez-vous defragmenter %per% ?
echo 1 : oui analyser!
echo 2 : non ne pas defragmenter!

if %per%==1 goto defrag
if %per%==2 goto notdefrag

:defrag
defrag.exe %per% /A /V
pause

:notdefrag
goto fin

echo voulez-vous defragmenter %per% ?

echo 1 : defragmneter
echo 2 : ne pas defragmenter

if %per%==1 goto godefrag
if %per%==2 goto nodefrag

:godefrag
defrag.exe %per% /U /X /V

echo defragmentation terminer
goto fin

:nodefrag
goto fin

:fin
pause
0
Utilisateur anonyme
23 janv. 2014 à 10:05
Salut ;)

echo veuillez entrer le chemin exacte.exemple : C:\ ou E: selon le volume.
echo,

set /p per= volume a analyser/defragmenter :

echo voulez-vous defragmenter %per% ?
echo 1 : oui analyser!
echo 2 : non ne pas defragmenter!

if %per%==1 goto defrag
if %per%==2 goto notdefrag

Dis moi, si je me trompe...

Mais :
%per% correspond au volume
Et ensuite, tu changes %per% en 1 ou 2

Il manque selon moi, un second set /p pour le choix (1 ou 2)

Comme ceci :
echo veuillez entrer le chemin exacte.exemple : C:\ ou E: selon le volume.
echo,

set /p per=volume a analyser/defragmenter :

echo voulez-vous defragmenter %per% ?
echo 1 : oui analyser!
echo 2 : non ne pas defragmenter!
set /p choix=Votre choix ?

if %choix%==1 goto defrag
if %choix%==2 goto notdefrag


Car %per% c'est bien le volume, il ne peut donc pas prendre ni 1 ni 2 ;)



++
0
neo-genesis Messages postés 175 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 30 mai 2019 71
24 janv. 2014 à 12:40
ha oui..en effet . dit comme ca ca parait logique x).
merci.
je vais tester ca et je te dirait.
bonne journée
0
neo-genesis Messages postés 175 Date d'inscription samedi 31 juillet 2010 Statut Membre Dernière intervention 30 mai 2019 71
24 janv. 2014 à 15:21
c'est bon c'est nikel.
merci de m'avoir aiguiller.
bonne journée
0
Utilisateur anonyme
24 janv. 2014 à 16:04
@+ :)
Bonne journée.
0