Batch fonction choice
Résolu
neo-genesis
Messages postés
175
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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
A voir également:
- Batch fonction choice
- Fonction si et - Guide
- Fichier batch - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
3 réponses
Salut.
Choice n'est pas conseillé... Surtout que dans votre code, vous pouvez aisément ne pas l'utiliser.
Je ferais comme ceci :
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..
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
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
Salut ;)
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 :
Car %per% c'est bien le volume, il ne peut donc pas prendre ni 1 ni 2 ;)
++
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 ;)
++
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?
Car choice n'existe pas sous windows XP.
Par contre, set /p si.
@+