|
Les langages
2°] Le Batch : Tutoriel d'initiation :
Sommaire : Cliquez sur la pour un retour au sommaire.
Partager
Pour commencer, voici un bout de code que je me suis amusé à créer avec une amie ! :) Vous pouvez le tester, c'est sans danger :
Version RLOS mise à jour le 17 décembre 2009 (version 1.1 mise en ligne) : Prise en compte de la version ZIP pour la désinstallation + petites corrections.
Version RLOS mise à jour le 9 Janvier 2009 (version 2.1 mise en ligne) : Compatibilité Windows 7 ajoutée + petites corrections (rapports plus clair, couleur....)
Version RLOS mise à jour le 18 Janvier 2010 (version 3.0 mise en ligne) : Changement de méthode pour les informations sur le système. Ajout de l'outil OSV.exe de Eric71 (merci à lui).
Explications :
Les deux fichiers téléchargeables sont en .zip. Après l'avoir téléchargé et placé sur le bureau, il faut faire un clic-droit dessus et choisir "Extraire tout.." ou "Extraire ici.."
Ensuite, dans le dossier "RLOS", double-cliquez sur "RLOS.bat" pour lancer l'outil.
1. La première option liste la version de votre Windows, celle de votre SP, les processus en cours, les logiciels de protection et de nettoyage.
2. La seconde option vide la corbeille et vous propose une défragmentation de votre disque dur, que vous pouvez refuser.
3. La troisième désinstalle RLOS.zip et supprime le rapport.
4. La dernière quitte le programme.
Je vous laisse l'adresse de l'outil. Vous pouvez l'utiliser, le modifier...Je vous l'offre pour vous faire la main. Je ne l'ai donc pas compilé, il est totalement transformable et vous pouvez regarder le code utilisé. Par contre, pour toute utilisation hors cadre privé, veuillez me contacter.
En ZIP : RLOS depuis Archive-Host : Cliquez ici--->>> Ric025 -- PrincessK -- RLOS.zip
En ZIP : RLOS depuis Ci-Joint : Cliquez ici--->>> Ric025 -- PrincessK -- RLOS.zip
Bon codage. J'en reste l'auteur, au même titre que PrincessK !
Le langage Batch est une suite de lignes de commande MS-DOS. Vous verrez ici les bases, vous pourrez créer des petits programmes, mais je n'ai pas pour ambition de vous apprendre à créer un outil complet !
Il faut d'abord apprendre à connaître les commandes afin de pouvoir les utiliser à bon escient.
- Commençez par créer un fichier texte sur votre bureau.
Un nouveau fichier.bat est créé sur votre bureau. Vous pourrez constater qu'il est impossible de l'ouvrir par double-clic ! Pour modifier le contenu, faîtes un clic-droit et choisissez Modifier.
Voilà pour la méthode "manuelle". Maintenant, il existe un outil qui peut faciliter grandement votre travail ! Il s'agit de PowerBatch. Avec cet outil, vous pourrez tester votre Batch, le compiler, vérifier si vos commandes sont correctes....
A télécharger ici : PowerBatch, par Astase.
Les premières commandes : 
echo :
Fonction première : Elle sert à afficher un texte sur l'écran.
Ouvrez votre fichier texte et collez ceci :
echo Salut, c'est un beau site Champ'Est.... :p
Enregistrez-le et lancez votre programme par double-clic... Alors ? Eh oui, cela ne fonctionne pas. Enfin si, mais c'est tellement rapide que vous n'avez rien vu. Il suffit alors de demander au programme de stopper et vous le relancerez vous-mêmes ensuite. C'est pas beau ? Voici le nouveau code, il vous suffit d'ajouter "pause" en seconde ligne.
pause :
echo Salut, c'est un beau site Champ'Est.... :p
pause
Enregistrez et lancez le programme. Ça fonctionne ! Oui, mais ce n'est pas très beau Heureusement, encore une fois, des solutions existent. Vous pouvez voir ici que les chemins sont indiqués : C:\documents And Settings\Utilisateur\Bureau\echo ou alors encore C:\documents And Settings\Utilisateur\Bureau\pause. Ce n'est pas très beau et guère pratique. Si deux lignes rendent ce résultat, imaginez-en 150 ! 
Il suffit de rajouter un arobase "@" devant les lignes pour "cacher" les chemins. Essayez :
@echo Salut, c'est un beau site Champ'Est.... :p
@pause
Voilà qui est déjà mieux. On a quelque chose qui ressemble à un début d'aventure.... Mais alors, si je comprends bien, je dois ajouter @ à chaque ligne... Un peu contraignant. Mais, vous avez certainement deviné qu'une solution existait ? Eh bien oui. Une commande permet d'éviter de répéter ce signe à chaque ligne. Cette commande s'appelle echo off. Il faut lui mettre l'arobase car rien ne vient avant, évidemment !! On va l'essayer. Voici le nouveau code :
@echo off
echo Salut, c'est un beau site Champ'Est.... :p
pause
Eh ! Mine de rien, cela fonctionne et c'est plutôt un gain de temps si on doit coder un programme assez long ! Une dernière fonction avec la commande echo ? Vous avez vu que là, on a tout collé ? Echo va également nous servir pour créer des sauts de lignes. Voici comment :
@echo off
echo Salut, c'est un beau site Champ'Est.... :p
echo.
echo Oui, j'apprécie particulièrement son Admin, Ric025...
echo.
echo Moi aussi ! :)
echo.
echo.
pause
Vous l'aurez donc vu, il suffit d'ajouter un point pour créer un saut de ligne. N'hésitez pas à l'utiliser. Vous pouvez en mettre autant que vous le désirez sans incidence directe sur votre code.
NOTE : Vous avez très certainement remarqué que les accents ne sortent pas sur l'écran. Il faut donc les supprimer ou utiliser les caractères adéquats.
La redirection >nul :
Fonction : Elle permet d'éviter l'affichage de la commande.
Essai : reprenons votre code et ajoutons >nul après pause :
@echo off
echo Salut, c'est un beau site Champ'Est.... :p
echo.
echo Oui, j'apprécie particulièrement son Admin, Ric025...
echo.
echo Moi aussi ! :)
echo.
echo.
pause >nul
Faîtes le test. Eh oui, il faut toujours appuyer sur une touche pour continuer mais la commande "pause" n'est plus écrite. Cette fonction peut s'avérer utile, surtout pour personnaliser votre code. Exemple :
@echo off
echo Salut, c'est un beau site Champ'Est.... :p
echo.
echo Oui, j'apprécie particulièrement son Admin, Ric025...
echo.
echo Moi aussi ! :)
echo.
echo.
echo Veuillez, je vous prie, bien vouloir accèder à ma requête et appuyer d'une façon ferme et certaine la touche de votre choix afin de continuer le programme.... & pause >nul
Ah oui ! C'est plus mieux !! :))
NOTE : Remarquez le symbole & qui amène simplement à un ajout d'une commande à la suite d'une autre. On aurait tout aussi bien pu ne pas ajouter ce symbole et ajouter "pause > nul" sur la ligne suivante.
Voyons maintenant d'autres commande. Vous pouvez avoir la liste des commandes en tapant dans votre code :
@echo off
help
pause
Les plus courantes : 
- cls : elle efface l'écran présent. Très utile lorsque vous codez un programme avec options.
Il suffit donc de taper cls en début de ligne et de le laisser tel quel pour effacer l'écran. Ensuite, on continue le codage du programme.
- title : elle permet de titrer votre fenêtre. A utiliser pour rendre le programme plus agréable. Notamment utile si vous utilisez la commande CLS. Ainsi, à chaque nouvelle fenêtre, vous renommez celle-ci. (Du nom des options par exemple). On écrit : title votre_nom
- start : elle ouvre une fenêtre et démarre le programme souhaité. Il y aura donc votre programme ouvert en plus du programme que vous démarrez. A ne pas confondre avec la suivante !
- Call : elle ouvre donc un programme, mais celui-ci ne sera pas ouvert dans une nouvelle fenêtre. Cela a pour avantage d'exécuter le-dit programme en tâche de fond, en résumé ! Pour ces deux commandes, on écrit : start ou call nom_du_programme.exe
- if/else : c'est en réalité une "boucle". Elle permet de vérifier la présence d'un élément et d'agir en conséquence. Traduisez : SI..... ALORS.....
- net config : permet d'avoir le nom de l'ordinateur. Et le nom seulement !
- ipconfig ou ipconfig /all : permet de voir votre adresse IP, MAC, diverses informations sur la carte réseau, Wifi....
- goto : permet de sauter à une étape plus éloignée. On y reviendra plus loin, lors du test du quizz.
- del : supprime un ou plusieurs fichiers. On écrit : del fichier.extension
- print : imprime un fichier texte.
- :: : oui, il s'agit bien de deux fois deux points ! Essayez donc de faire :: sur une ligne avec PowerBatch ! Et oui, ils se mettent automatiquement en italique et en vert ! Cela signifie que vous pouvez entrer un commentaire. Celui-ci n'apparaîtra jamais que dans la modification ! Ceci pour faciliter votre travail, ainsi, vous pouvez toujours savoir le pourquoi de cette ligne !
Il existe encore une multitude de commandes possibles. En Batch, on peut supprimer, copier, déplacer... Encore une fois, pour avoir plus d'info sur les commandes, vous pouvez lancer l'exécuteur de commande (Démarrer >> Exécuter et tapez "CMD" (sans les guillemets)). Tapez ensuite help puis la touche Entrer. On vous précisera même que pour plus d'infos sur une commande en particulier, il suffit de demander : (Démarrer >> Exécuter et tapez "CMD" (sans les guillemets)). Tapez ensuite, par exemple, help call puis la touche Entrer. Vous aurez alors les infos sur la commande Call.
Les variables possibles en Batch : 
set : elle est la plus utilisée. Elle permet d'appeler une variable déclarée. On y reviendra plus loin également, dans l'exemple du quizz.
Le design : 
En batch, il faut l'avouer, ce n'est pas très beau. Alors, si nous mettions un peu de couleurs ? Voici le tableau récapitulatif, sachez seulement que les couleurs marchent par deux. Le premier chiffre agira sur le fond de page, le second, sur les caractères. A noter qu'avec PowerBatch, les bordures peuvent se faire automatiquement :
Les symboles pour les couleurs
|
Symboles
|
Couleurs
|
| 0 |
Noir
|
|
1
|
Bleu Foncé
|
|
2
|
Vert
|
|
3
|
Bleu-Gris
|
|
4
|
Marron
|
|
5
|
Pourpre |
|
6
|
Kaki
|
|
7
|
Gris Clair
|
|
8
|
Gris
|
|
9
|
Bleu Clair
|
|
A
|
Vert Clair
|
|
B
|
Cyan
|
|
C
|
Rouge
|
|
D
|
Rose
|
|
E
|
Jaune
|
|
F
|
Blanc
|
Les symboles pour les bordures
|
Symboles
|
Bordures
|
|
Í (Alt+ 0205) "i" majuscule avec un accent aigu
|
Bordure Horizontale
|
|
º (Alt+ 0186) Il s'agit du signe Ordinal Masculin, à ne pas confondre avec le signe degré, obtenu par Alt+0176
|
Bordure Verticale
|
|
É (Alt+ 144 ou Alt+ 0201)é majuscule (accent aigu)
|
Coin Supérieur Gauche
|
|
È (Alt+ 0200) è majuscule (accent grave)
|
Coin Inférieur Gauche
|
|
» (Alt+ 0187) Chevron droit
|
Coin Supérieur Droit
|
|
¼ (Alt+ 0188) Fraction un quart
|
Coin Inférieur Droit |
La création de rapports :
Bien sûr, la création de rapports n'intéressera pas tout le monde. Cependant, elle peut s'avérer utile si on souhaite inscrire nos recherches ou nos travaux dans un document texte. Pour afficher ce qu'on fait sur un rapport, il faut appeler un nouveau document texte et inscrire les résultats dans celui-ci. Pour être plus clair, prenons un exemple très simple :
On veut voir les différentes commandes possibles (une liste non-exhaustive de celles-ci), on écrit donc :
@echo off
help
pause
Vous voyez toute la liste s'afficher dans l'invite de commande. Maintenant, pour enregistrer tout ceci sur un fichier, voici la solution :
type nul> help.txt
--> On appelle le nouveau document que l'on nomme directement (ici, help.txt). A partir du moment où on écrit cette ligne, le fichier se place sur le bureau (ou dans le dossier où l'on exécute notre Batch) Tout ce que l'on veut noter à l'intérieur, on doit donc le signifier :
@echo off
type nul> help.txt
help >> help.txt
pause
On a donc créé le fichier vierge puis on demande d'inscrire ce que l'on voit dans l'invite grâce à la commance help.
On peut également voir ceci comme ça :
@echo off
type nul> Heure_Date.txt
Echo Quelle heure est-il ? >> Heure_Date.txt
Echo Il est exactement %time% >> Heure_Date.txt
Echo Merci ! Mais on est quand déjà ? >> Heure_Date.txt
Echo Réveille-toi, on est le %date% ! >> Heure_Date.txt
Pause
Ici, cela fonctionne bien. Mais, pourquoi alors sur l'invite, je n'ai que la commande pause qui est retranscrite ? Simple, c'est parce que l'invite ne prend pas en compte les lignes où l'on demande de les inscrire dans un fichier. Pour voir l'outil "travailler", il faut alors tout écrire deux fois ! Eh oui, c'est comme cela que sont codés la plupart des outils de désinfection en Batch ! Un simple copié-collé suffit, puisque normalement, on écrit déjà pour l'invite puis ensuite, à la fin du codage, pour le fichier ! Ici, on aura :
@echo off
type nul> Heure_Date.txt
Echo Quelle heure est-il ?
Echo Il est exactement %time%
Echo Merci ! Mais on est quand déjà ?
Echo Réveille-toi, on est le %date% !
Pause
Echo Quelle heure est-il ? >> Heure_Date.txt
Echo Il est exactement %time% >> Heure_Date.txt
Echo Merci ! Mais on est quand déjà ? >> Heure_Date.txt
Echo Réveille-toi, on est le %date% ! >> Heure_Date.txt
Mais, je me pose encore une question ! Pourquoi on a un seul chevron, puis ensuite deux ? L'explication est rapide : le chevron unique, >, efface ce qui a précédemment été noté ! Ici, à chaque fois que je lancerai le programme, l'heure changera en fonction de son avancée, sans créer de nouveau rapport ! Pratique non ? Un même rapport, mais il change à chaque lancement. Sachant cela, il est logique de se dire qu'ensuite, les deux chevrons >>, sont justifiés ! En effet, deux chevrons et les écritures précédentes ne sont pas effacées ! Si vous remplacez les doubles chevrons par des uniques, dans le codage précédent, seule la dernière ligne sera notée dans le rapport, car la première sera inscrite, puis supprimée et remplacée par la seconde, et ainsi de suite ! Vous pouvez tester !
Alors ? Elle est pas belle la vie ?
Ici, on a déjà une bonne base du langage Batch. On est presque prêt à se lancer dans l'élaboration d'un petit programme, non ? Encore un peu tôt ? Peut-être ! Il manque encore quelques pistes à explorer. Cependant, je rappelle qu'ici, ce n'est qu'une initiation au Batch ! Ne vous attendez pas à sortir de ce tutoriel et à partir à la conquête du développement d'outils élaborés ! Pour cela, il faudra explorer d'autres sites et surtout beaucoup bosser !
Et comme promis depuis un moment maintenant, voici l'exemple de quizz. C'est évidemment une façon de s'amuser, mais pas seulement. Ainsi, vous verrez réellement à quoi servent certaines commandes et comment la syntaxe doit s'opérer. Notamment goto, set...
L'exemple de Quizz :
On ne va pas se compliquer la tâche, on va donc réaliser quelque chose de simple. Voici ce que je propose :
sd-1.archive-host.com/membres/up/21362097671547645/Quizz.bat
Je vous laisse bien regarder le code. En cas de soucis, n'hésitez pas à me contacter via le formulaire de contact dans le menu de droite. J'essaierai de répondre aux mails le plus rapidement possible.
Et voici le code du Quizz, expliqué :
@echo off | --> Suppression de l'@ obligatoire.
title Quizz pour les visiteurs de Champ'Est | --> Titre de la première fenêtre, accueil.
color d0 | --> Couleur de la fenêtre. "d" pour le fond rose. 0 pour les caractères, noirs.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º QUIZZ CHAMP'EST º
echo º º --> Mise en page, cadres.
echo º Bienvenue … toi º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo.
echo.
echo.
echo.
echo Tu vas donc tester ce programe. Aucune crainte, il est inoffensif ! ;)
echo La preuve : il est tout rose !! :))
echo.
echo Lis bien la fin, tu me proposeras peut-ˆtre quelque chose d'int‚ressant !
echo.
echo.
echo.
echo.
echo.
echo Si tu es prˆt, tape sur une touche ! | --> Pause, avec >nul, le message automatique est
pause > nul | --> désactivé. Apparaît donc la Phrase plus haut.
echo. &echo. &echo.
type nul> Resultat_Quizz.txt | --> Je crée dès maintenant le rapport, vide, sur le bureau.
:premiere question | --> Avec les deux points, ce sera donc un retour possible.
cls | --> commande qui efface l'écran présent.
title PremiŠre Question | --> Nouveau titre de la nouvelle fenêtre.
echo Voici tes resultats du Quizz de Ric025 : > Resultat_Quizz.txt | --> Titre du rapport.
echo. >> Resultat_Quizz.txt
echo. >> Resultat_Quizz.txt
echo. >> Resultat_Quizz.txt
echo. >> Resultat_Quizz.txt
echo. >> Resultat_Quizz.txt
echo Quel est le forum de formation francais ou regne la meilleure ambiance ? >> Resultat_Quizz.txt
echo Quel est le forum de formation fran‡ais o— rŠgne la meilleure ambiance ?
|--> Répétée deux fois, la question est d'abord collée dans le rapport puis on la voit sur l'écran.
echo.
echo.
echo 1 = S‚curit‚ Acad‚mie
echo 2 = Helper-Formation
echo 3 = S‚curity-X
echo 4 = Champ'Est
echo 5 = Un autre....
echo.
echo.
echo Tapez votre r‚ponse puis "Entrer" :
SET /P forum=formation ? > nul | --> SET annonce la variable déclarée, soit ici le nom de la
| première question (forum)
IF %forum%==1 echo H‚ non ! Recommence ! &pause &goto :premiere question
| --> IF %FORUM%
| annonce que si pour la variable 'FORUM' on répond '1',
| alors, il sera écrit 'Hé non ! Recommence !' + la pause
| + le retour à :première question.
IF %forum%==2 echo Bravo ! C'est bien sur HF que rŠgne la meileure ambiance ! &echo Bravo ! C'est bien sur HF que regne la meilleure ambiance ! >> Resultat_Quizz.txt &echo. >> Resultat_Quizz.txt &echo Quel est le site qui propose des photos du Doubs et qui dechire du slip ? >> Resultat_Quizz.txt &pause > nul &goto :seconde question
--> Cette seconde ligne dit que si pour la variable 'FORUM' (donc toujours pour notre première question) on répond '2', il sera écrit et sur l'écran et sur le rapport la phrase de félicitations + la pause + le passage à :seconde question.
La suite du code est une répétition de ces commandes.
IF %forum%==3 echo H‚ non ! Recommence ! &pause &goto :premiere question
IF %forum%==4 echo Tu me flattes, mais tu as vu une formation sur ce site ??? ! Recommence ! &pause &goto :premiere question
IF %forum%==5 echo H‚ non, il est bien dans la liste ! Recommence ! &pause &goto :premiere question
:seconde question
cls
Title Seconde Question
echo Quel est le site qui propose des photos du Doubs et qui d‚chire du slip ?
echo.
echo.
echo 1 = Le Doubs, c'est nous.‚fŠre
echo 2 = On roule tout doux dans le Doubs.commeuh
echo 3 = Le Sud, c'est beau.sud
echo 4 = Champ'Est.com
echo 5 = Un autre....
echo.
echo.
echo Tapez votre r‚ponse puis "Entrer" :
SET /P doubs=site ? > nul
IF %doubs%==1 echo H‚ non ! Recommence ! &pause &goto :seconde question
IF %doubs%==2 echo H‚ non ! Recommence ! &pause &goto :seconde question
IF %doubs%==3 echo H‚ non ! On a dit Doubs ! Tu suis ou quoi ?? Recommence ! &pause &cls &goto :seconde question
IF %doubs%==4 echo Merci ! Tu es trop gentil(le) ! Je suis oblig‚ d'accepter ! &echo Bravo ! Tu es trop gentil(le) ! >> Resultat_Quizz.txt &echo. >> Resultat_Quizz.txt &echo Quel est le prenom de l'Administrateur de Champ'Est, cache sous le pseudo Ric025 ? >> Resultat_Quizz.txt &pause > nul &goto :derniere question
IF %doubs%==5 echo H‚ non, il est bien dans la liste ! Recommence ! &goto :seconde question
:derniere question
cls
title DerniŠre Question
echo Quel est le pr‚nom de l'Administrateur de Champ'Est, cach‚ sous le pseudo Ric025 ?
echo.
echo.
echo 1 = Ben, Ric025 !
echo 2 = Heu... Richard ??
echo 3 = J'sais pas, moi.... Eric ?
echo 4 = Facile, Ric !
echo 5 = J'm'en fous...
echo.
echo.
echo Tapez votre r‚ponse puis "Entrer" :
SET /P prenom=ric025 ? > nul
IF %prenom%==1 echo H‚ non, ce serait trop simple, tu crois pas ? Recommence ! &pause &cls &goto :derniere question
IF %prenom%==2 echo H‚ non ! Recommence ! &pause &cls &goto :derniere question
IF %prenom%==3 echo Bravo ! C'est bien Eric ! &echo Bravo ! C'est bien Eric ! >> Resultat_Quizz.txt &echo. >> Resultat_Quizz.txt &pause > nul &goto :fin
IF %prenom%==4 echo H‚ non, ce serait encore plus simple que la r‚ponse 1, tu crois pas ? Recommence ! &pause &cls &goto :derniere question
IF %prenom%==5 echo M‚chant(e) ! Recommence ! &pause &goto :derniere question
:fin
cls
title Pourquoi Pas Vous ?
echo.
echo.
echo.
echo.
echo Bravo !! Tu as reussi le quizz ! Maintenant, c'est a toi de me proposer
echo un Quizz que tu auras cree toi-meme ! :) S'il fonctionne correctement, je le
echo mettrai en ligne sur le site !
echo.
echo.
echo Bonne journ‚e ou soir‚e ou nuit...
echo.
echo ... et … bientot !
echo.
echo.
pause
On arrive à la fin de ce tutoriel d'initiation. N'hésitez pas à donner une note et même un commentaire en bas de page.
Remerciements :
- Merci au SiteDuZéro, qui, une fois n'est pas coutume, est bien sûr à l'origine de mes débuts avec ce langage.
- Merci également au forum Batch.xoo.it. Et à Laddy en particulier.
- Merci à Zébulon.fr pour ses conseils prodigués à PrincessK notamment.
- Un grand merci à un absent, Pierre.... qui est passé par le site des professionnels, developpez.com !
- Enfin, merci à PrincessK....
CopyRight : 
CopyRight de la page : LIBRE. Vous pouvez partager ce tutoriel, le copier, le transformer, le recommander bien sûr !
CopyRight de RLOS : Réservé à un cadre strictement privé uniquement ! Pour toute autre utilisation, veuillez m'en faire la demande par mail, via le formulaire de contact du menu à droite.
Notations et Commentaires :
Ric025 |
|
Les Nouveautés du Pays
Nos Partenaires
Faîtes-nous Connaître
Nos Sites Conseillés
Contactez-Nous
Le CopyRight des Images
Le Livre d'Or
|
|