cour n°2

cour n°2
Apprendre le Batch :
Premier Batch



Maintenant il est temps de créer notre premier fichier batch (que j'appelerais toujours Batch)

Pour cela, il nous faudra simplement :

- Créer un fichier
- Le remplir de commandes que nous apprendrons tout au long de ce tutoriel
- Le lancer


1. Créer un Batch

Pour créer un Batch, il faut créer un fichier (peu importe l'endroit mais le bureau sera souvent pratique) qui aura toujours pour extension '.bat'.

Le problème avec Windows, c'est que les extensions sont masquées.

Pour ne plus rencontrer ce problème :
- Ouvrez un dossier (n'importe lequel)
- Allez dans 'Outils' puis 'Options des dossiers'
- Une nouvelle fenêtre s'affiche, allez dans l'onglet 'Affichage'
- Et décochez la case 'Masquer les extensions des fichiers dont le type est connu'
- Cliquez sur Ok

A présent il suffit simplement de créer un fichier texte sur le bureau (clique droit > Nouveau > Document texte) et de le renommer en 'un_super_nom.bat' (n'importe quel nom du moment qu'il y ait .bat à la fin)

On remarque que le fichier a changé d'icone

2. Modifier le Batch

Alors là, c'est hyper-simple, faites clique droit sur le fichier Batch puis cliquez sur 'modifier'.
Le bloc-notes doit s'ouvrir, il nous suffira juste d'y mettre des commandes puis d'enregistrer (Ctrl+S ou Fichier>Enregistrer).

Notre premier code va être celui-ci :
@echo off
echo Salut,
echo.
echo Ca va toi ?
pause>nul

Nous apprendrons tout ce que cela veut dire (et même bien plus )
Copiez/Collez ce code dans votre Batch puis enregistrez.

3. Lancer le Batch

Maintenant que nous savons créer un Batch, le modifier et l'enregistrer nous allons le lancer en double cliquant dessus tout simplement.

Il sera directement interprété par Windows
Il sera affiché par la console, c'est cette fenetre toute noire (j'en profite pour dire qu'on apprendra à changer les couleurs ).

Si vous avez crée un Batch avec le code de tout à l'heure, il devrait vous afficher :
Salut,

Ca va toi ?

Et attendre l'appui d'une touche.



Et voila comment se termine se chapitre pas forcément nécessaire pour tous.

En tout cas à présent nous savons presque tout sur le Batch, il nous suffit d'apprendre à coder avec et quelques autres trucs... hey revenez

Vous êtes prêts ? A partir des prochains chapitres, nous allons vraiment commencer !
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le dimanche 01 juin 2008 14:38

Cour N°3

Cour N°3
Apprendre le Batch :
Code minimal(comme je suis sur que vous n'avez rien lu des commandes dos)



Salut tout le monde

Au départ je comptais vous apprendre une commande mais finalement je glisse ce chapitre _très court_ pour vous donner le code minimal obligatoire à écrire en tout premier !

Le voici :
@echo off

REM Vos commandes ici.

pause>nul


Explications :

- '@echo off ' :
Si vous êtes observateurs vous remarquerez que si on enlève l'arobase '@' on voit le chemin de l'appel de chaque commande (un truc sour la forme : "C:\blabla" ce qui est assez génant (et fort inutile ) donc en placant le '@' on enlève ce détail.
Le problème c'est qu'on va pas le faire pour chaque commande, imaginez si on avait un fichier avec 200 commandes dedans ce serait assez chiant de mettre '@' devant..
Donc pour bloquer définitivement ce problème, il suffit de faire : 'echo off' et de placer un '@' devant pour ne plus jamais voir les chemins des commandes
Bref si vous êtes pas convaincus essayez sans le '@' puis avec etc..

- 'REM ' :
La commande la plus simple du monde, elle sert à mettre des commentaires.
Pour ceux qui ne savent pas ce qu'est un commentaire, et bien c'est simple, prenons un exemple :
@echo off
REM Désactivation des chemins

echo salut
REM Affichage de 'salut'

pause>nul
REM Fermeture du programme si appuie sur une touche

En fait vous pouvez marquer ce que vous voulez derrière le 'REM' l'interpréteur l'ignorera et cela vous permettra de vous repérer dans le code.

- 'pause>nul ' :
La commande 'pause' permet d'attendre l'appuie d'une touche avant de continuer et affiche un message
Le '>' est un redirecteur de flux (ici le flux nul, c'est à dire rien), on verra ca plus loin, en fait cela permet de ne rien afficher l'écran dans notre cas et juste attendre l'appui d'une touche.

Tout ça pour vous montrer le code minimal à écrire avant de faire un batch pour être tanquille pour la suite.
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le dimanche 01 juin 2008 14:54

Cour n°4

Cour n°4
Apprendre le Batch :
Première commande : 'echo'



A présent il est temps de voir notre première commande

Avant toute chose rappelons que le batch n'est pas sensible à la casse, ce qui veut dire que :
eChO
eCHO
Echo
ECHO
echo
EcHo
etc.., on va pas tout faire non plus

Est exactement équivalent !

Maintenant, la suite..

Les différentes fonctions de la commande "echo" :

1. Activer/Désactiver l'appel de commandes
2. Afficher du texte
3. Sauter une ligne

1. Activer/Désactiver l'appel de commandes

Comme nous l'avons vu dans le chapitre précédent il y a un petit ennui lors de l'appel d'une commande, c'est l'apparition du chemin de l'appel, très moche et complètement inutile, on le désactive comme ceci :
echo off
N'oubliez pas que le signe '@' placé avant chaque commande fait exactement le même effet !

Et on le réactive comme cela :
echo on


Donc si on a ce code :
blabla
pause>nul

On obtient :
C:\Documents and Settings\Administrateur\Bureau>blabla
'blabla' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

C:\Documents and Settings\Administrateur\Bureau>pause1>nul

Alors que si on rajoute un '@echo off' devant :
@echo off
blabla
pause>nul

On obtient seuleument :
'blabla' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.


Plus agréable, non ?

Et pour connaitre l'état de echo (savoir s'il est désactivé ou non), il suffit de taper 'echo' tout seul, exemple :
@echo off
echo
pause>nul

Donne :
Commande ECHO désactivée.


2. Afficher du texte

A travers mes exemple je pense que vous l'avez compris, pour afficher du texte, c'est tout simplement : 'echo votre texte'.

Donc par exemple :
@echo off
echo Salut, je vous confirme que la commande echo marche
pause>nul


Donnera :
Salut, je vous confirme que la commande echo marche


Bref, plus simple tu meurs

3. Sauter une ligne

Encore plus simple, il suffit de faire : 'echo.'



Pour résumer :
echo off
echo La commande echo vient d'etre desactivee
echo.
echo Appuyez sur une touche..
pause>nul


Ce qui donnera :

C:\Documents and Settings\Administrateur\Bureau>echo off
La commande echo vient d'etre desactivee

Appuyez sur une touche..



Bon je veux bien croire que les mecs qui ont développés ça ont pas été très intelligent, de mettre autant de choses sur une seule commande mais bon, heureusement, ça reste plutot simple
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le dimanche 01 juin 2008 14:56

Cour N°5

Cour N°5
Apprendre le Batch :
Les variables grâce à 'SET'



Bon je vous préviens, ce chapitre ne va franchement pas être très simple à expliquer mais il n'est pas compliqué
Tout dépend de vous. Je vais partir de la base pour que tout le monde puisse être au même niveau

De 2 choses l'une :
- Vous connaissez déjà les variables (dans ce cas, allez direct à la partie 2) )
- Ou alors z'avez pas la moindre idée de ce que c'est que cet animal (auquel cas, je l'explique dès maintenant)



1) Introduction aux variables

Les variables c'est la base de tout. Par exemple lorsque vous lancez MSN et que vous tapez votre adresse et votre mot de passe, c'est stocké dans une variable. En fait je dirais que chaque fois que vous tapez quelque chose dans un champ c'est stocké dans une variable.

Bien sûr ça ne s'arrête pas là, chaque fois qu'un programme veut enregistrer quelque chose, une valeur, une chaine de caractère (je vous expliquerais plus loin), etc.., le programme le stocke dans une variable.
En fait une variable, c'est un emplacement dans <a href="http://fr.wikipedia.org/wiki/M%C3%A9moire_vive">la mémoire vive</a> (la RAM dit-on aussi) qui nous est réservé.

Mais bon dans la réalité, on s'en fout un peu, ce qui compte, c'est ce qui va suivre, finis la rigolade Passons aux choses sérieuses !


2) Déclarer une variable

Tout ce qui va toucher aux variable en général se fait avec la commande : SET
( et j'en profite pour rappeler, bien sûr, que les majuscule ou minuscules n'ont pas d'importance).

Pour déclarer une variable, il y a 2 possibilités :

1. Cette variable sera numérique, c'est à dire que vous ne stockerez qu'une valeur en base décimale (base 10), hexadécimale (base 16) ou octale (base 8).
Si vous ne savez pas ce qu'est une base alors vous utilisez très certainement la base décimale (chiffres de 0 à 9).

<a href="http://fr.wikipedia.org/wiki/Base_(arithmétique)">Un article sur les bases pour plus de renseignements !</a>

2. Cette variable contiendra une chaine de caractère.
Ca y'est, j'en entends déjà :
Mais c'est quoi une chaineuh de machintruc là ?
C'est une suite de caractères. Donc ça peut-être une phrase, un mot, une lettre ou un nombre si vous ne vous en servez pas pour le calcul par la suite.


Maintenant que nous savons tout ça, passons du coté code.

1er cas, déclarer une variable numérique :
SET /A nom_de_votre_variable = VALEUR

Analysons ce code :
SET : Bon bah c'est la commande dont je vous parlais, rien à dire de particulier.
/A : C'est un paramètre qui indique qu'il s'agit d'une variable numérique.
nom_de_votre_variable : Bon bah je vous le donne en mille, c'est le nom de votre variable , ce nom est là pour que vous vous repériez avec vos variable. Donc ne mettez pas 'var1' ou un truc incompréhensible comme 'c4Fe'
= : C'est un égal d'affectation qui va servir à affecter la valeur qui se trouve à droite.
VALEUR : La valeur comme vous avez pu le deviner Vous avez la possibilité de l'écrire en 3 bases.
Soit en base 10 : Rien à faire de spécial, si ce n'est de ne pas mettre de 0 inutiles devant (vous allez voir pourquoi juste après), donc par exemple : 35 s'écrira 35 et 09 s'écrira 9.
Soit en base 16 : Là, vous devrez mettre 0x devant. Donc par exemple : 255 s'écrira 0xFF.
Soit en base 8 : Là vous devrez ajouter 0 devant. Donc par exemple : 12 s'écrira 014 et 1256 s'écrira 02350.

On va faire un petit code pour terminer la partie variable numérique mais je voudrais vous parler juste avant des conventions que je vais adopter. Comme le batch autorise beaucoup de choses qui peuvent faire prendre de mauvaises habitudes si vous voulez un jour programmer dans un autre langage, je me suis tenu à des conditions strictes :

Le nom de la variable : : Il ne contiendra que des caractères alphanumériques simples (donc accents interdits) en plus du caractère _ (l'underscore ou tiret du bas). Une variable ne peut que commencer par une lettre.
Exemples valides : 'age_chien', 'taille_maison2', 'blabla596'
Exemples invalides : '6blabla' (commence par un chiffre), 'maison chloé' (caractère espace et accent)

Forme de la commande : Je laisserais toujours un espace de chaque coté du égal.


Voilà en gros les conventions que je me tiendrais de respecter. Je répète bien que Ce ne sont pas les conventions officielles, le batch laisse un peu plus (mais pas beaucoup plus) de marge, c'est uniquement à titre personnel.

Maintenant un code récapitulatif en n'oubliant pas le code minimal vu avant :
@echo off

REM On déclare une variable qui contiendra le nombre de PC
REM que chacun a dans sa maison (fallait bien trouver quelque chose) :

set /A nombre_pc = 4

pause>nul

Et vous allez bien sûr vous demandez ce que ça fait à l'écran ? Absolument rien, Héhé.
C'est juste qu'on va voir comment l'utiliser juste après, car je rappelle qu'on a juste déclarer une variable.


2ème cas, déclarer une variable classique :

Oui ce sont les variables classiques ou normales. Elles contiennent donc une chaine de caractère comme expliqué avant.

Voici la commande :
set nom_de_la_variable=VALEUR

Analysons-là :
On remarque qu'elle est presque semblable à celle d'avant.
On voit qu'il n'y a pas de paramètres, en effet par défaut la commande initialise la variable en tant que variable normale.
La valeur peut être n'importe quoi, aussi bien une phrase de 10 mots qu'une lettre ou un nombre.
S'il s'agit d'une phrase ou de caractères, les majuscules et minuscules sont conservées.
S'il s'agit juste d'un nombre, prenez l'habitude de le stocker dans une variable numérique car imaginez que vous décidiez de vous en servir autrement que pour l'afficher à l'écran..

Conventions personnelles utilisées :

Forme de la commande : Aucuns espaces de part et d'autre du égal.

Un petit code pour résumer :
@echo off

REM On déclare une variable qui contiendra le nom de l'utilisateur (vous quoi)

set nom_utilisateur=Yoshito

pause>nul

Comme précédemment cet exemple n'affichera rien à l'écran excepté le fameux 'Appuyez sur une touche blabla...'



Pfiouuuu ! Je vous cacherais pas que ça n'a pas été facile à expliquer mais au moins le plus dur du chapitre est fait.
Si vous n'avez pas tout compris, je vais déprimer vous conseille de relire pour bien assimiler Car c'est une base qui est plus que fondamentale !
Maintenant que vous avez compris, on va enfin se servir des variables en les affichant à l'écran dans un premier temps.

3) Afficher une variable à l'écran

Très simple, on utilise la commande echo car c'est elle qui affiche des choses à l'écran.
Ca donne :
echo %nom_de_la_variable%

Comme vous le voyez, le nom de la variable est mis entre '%' (signe du pourcentage).
Ca n'est pas exclusif à 'echo', chaque fois qu'on voudra utiliser les variables en dehors de la commande SET, on mettra des '%' autour pour signaler qu'il s'agit d'une variable.

Maintenant testons ceci avec les codes qu'on avait utilisé pour déclarer les variables :

- Variable numérique :
@echo off

REM On déclare une variable qui contiendra le nombre de PC
REM que chacun a dans sa maison (fallait bien trouver quelque chose) :

set /A nombre_pc = 4

REM On l'affiche à l'écran, sans oublier que le nom de variable n'est pas sensible à la casse
REM (veut dire que %nomVar%=%nomvar%=%NoMvAr% etc..)
echo Chez toi, tu as %nombre_PC% ordinateur(s) !

pause>nul
Résultat à l'écran :
Chez toi, tu as 4 ordinateur(s) !


Mais vous devez vous demander pourquoi est-ce qu'on s'ennuie à utiliser des variables numériques car on pourrait très bien faire :
set nombre_pc=4
Cela marcherait tout aussi bien.
Euh, oui et ?
Tout simplement parce que nous n'allons pas en rester là sur des exemples aussi basiques, et que nous ferons des opérations (genre multiplier par 4 le nombre de PC ) et là, sans variables numériques, ça marcherait absolument pas.


- Variables normales (qui contiennent les chaines de caractères) :
@echo off

REM On enregistre le nom de l'utilisateur

set nom_utilisateur=Yoshito

REM On l'affiche à l'écran
echo Hmm, je pense que tu t'appelles %nom_utilisateur% !

pause>nul
Résultat à l'écran :
Hmm, je pense que tu t'appelles Yoshito !



4) Modifier une variable

Très simple, il suffit de la réinitialiser :
@echo off

REM Variable numérique :

set /a age = 10
echo Tu as %age% ans !
set /a age = 20
echo Maintenant, tu as %age% ans !

REM Variable normale :

set nom_chien=Ralfi
echo Ton chien s'appelle %nom_chien%
set nom_chien=bouff'tout
echo J'ai renomme ton chien en %nom_chien% !!

pause>nul
Même si vous ne voyez pas l'intérêt maintenant, vous le verrez dans le chapitre sur le traitement des variables



Et voilà, ouf, je suis crevé mais satisfait
N'hésitez pas à faire des exemples chez vous, entrainez-vous, vous devez maîtriser ce chapitre pour la suite, c'est vital !

# Posté le dimanche 01 juin 2008 15:09

cour n°6

cour n°6
Apprendre le Batch :
Récupérer une valeur avec 'SET'



Huhu, j'avoue que devoir déclarer ses variables, c'est pas très marrant
Alors dans ce chapitre, vraiment cours car j'osais pas l'ajouter à celui d'avant, on va voir comment récupérer une valeur avec SET via l'utilisateur.


1) Déclarer une variable.. un peu particulière

La commande la voici :
SET /P nom_variable=texte
Analysons-le :
SET : Rien de spécial à ajouter.
/P : C'est la paramètre qui indique que l'on va demander la valeur et cette valeur sera stockée dans une variable normale.
nom_variable : Toujours le nom de la variable
texte : C'est là qu'est la nouveauté mais ça reste encore simple ! En fait texte sera votre texte affiché à l'écran pour demander la valeur de la variable. On va faire un exemple juste après.

Conventions personnelles utilisées :

nom_variable : Pareil que le chapitre précédent.
Forme de la commande : Aucuns espaces de part et d'autre du égal.


Et un exemple pour bien comprendre :
@echo off

echo Bonjour,
echo.

REM On demande l'age de l'utilisateur

SET /p age_utilisateur=Quel age avez-vous ? Veuillez taper le nombre d'annees ici :


REM On demande son nom

sET /p nom_utilisateur=Quel est votre nom ? Tapez le ici :


REM Mais on peut également laisser la partie à droite du égal vide !
REM Exemple ...

echo Comment s'appelle ton chien ? Tape le ici :
set /p nom_chien=

REM ... Mais cela oblige de sauter une ligne car rappellez vous,
REM la commande 'echo' saute toujours une ligne en fin de phrase


REM Et on récapitule

echo Hmm, j'ai de la memoire car je sais que tu t'appelles %nom_utilisateur%, que tu as %age_utilisateur% ans et que ton chien s'appelle %nom_chien% !


pause>nul


Voilà, vous pouvez copier/coller cet exemple et vous verrez bien que ça marche
Entrainez vous en fesant un mix avec le chapitre précédent.

Le prochain chapitre traitera encore des variables et il s'agira de les manipuler
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le dimanche 01 juin 2008 15:12