[MS-DOS] Utiliser les conditions

Fermé
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 - 11 févr. 2006 à 21:32
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 31 août 2008 à 17:42
Je voudrais savoir comment utiliser les conditions dans MS-DOS.

J'aimerais créer un fichier bat qui défragmente le disque dur si celui ci à besoin d'être défragmenté (en utilisant la commande defrag c: -a pour analyser le disque dur, suite à cette commande, un message s'affiche : soit :
_ vous devriez défragmenter ce disque dur
ou
_ il ne vous est pas nécessaire de défragmenter ce volume.

Si ce dernier méssage est affiché à l'écran, alors exécuter la défragmentation avec la commande defrag c: -f. Mais je suis perdu entre les différents arguments et l'aide de MS-DOS qui n'est pas très parlante, je n'y arrive pas. Avez-vous un exemple à me proposer ?

6 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
31 août 2008 à 17:42
Bonjour,

On peut toujours se bricoler une petite fonction (si c'est toujours pertinent .......):

ECHO OFF

SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions

CLS

SET "F_MESDEF=defrag.txt"
SET  "mesdefrag=est nécessaire"

defrag c: -a        >             %F_MESDEF%

         FOR  /F   "tokens=1,1* delims="  %%J    IN   (
                ' TYPE %F_MESDEF%  ^|  FIND /I "%mesdefrag%"' )  DO  (
                defrag c: -f        )

        IF       EXIST 	%F_MESDEF%      ( ERASE     /A     %F_MESDEF%)
                
:EOF


Je ne connais pas la teneur exacte du message invitant à défragmenter, j'ai présumé qu'il est identique à son contraire à la négation près. :
Il ne vous est pas nécessaire de défragmenter ce volume.
Il vous est nécessaire de défragmenter ce volume.
1
jpdeclermont Messages postés 1788 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 3 septembre 2006 382
11 févr. 2006 à 21:42
bonsoir,

je n'ai pas de réponse pour le moment :)
à vérifier : est-ce que defrag renvoie un code différent suivant le taux de fragmentation ..... je n'en suis pas persuadé :)


-------------------------------
... WinErr 01B : Erreur illégale - Windows ne vous a pas autorisé à avoir cette erreur
0
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
11 févr. 2006 à 21:49
Bonsoir,

Que veux tu dire par "est-ce que defrag renvoie un code différent suivant le taux de fragmentation" ?
0
jpdeclermont Messages postés 1788 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 3 septembre 2006 382
11 févr. 2006 à 22:05
re-

en règle générale, quand tu veux introduire un test de condition
(dans un batch ou autre) il faut bien quelque chose à tester !!!
pour defrag je n'en suis pas persuadé du tout ....

mais laissons les spécialistes s'exprimer :)


-------------------------------
... WinErr 01B : Erreur illégale - Windows ne vous a pas autorisé à avoir cette erreur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
12 févr. 2006 à 00:20
bonsoir

ouaip, ben ouaip, je sais pas trop non plus...
Je vais prendre mon surf et aller surfer un peu sur le site de Microsoft France, peut-être vais-je trouver un gros poisson pour ce soir. (en fait, je vais plutôt y aller demain, là je vais aller me coucher...)

Merci
0
Lefouerrant Messages postés 567 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 1 octobre 2009 116
31 août 2008 à 14:29
avec errorlevel peut-etre
0