Les batch

10-09-2006 à 12:07:36
Comme je suis assez calé en batch, je répondrais à vos questions sur ce sujet ^^
04-09-2006 à 19:27:31
salut
tu devrais peut etre faire une petite explication pour ceux qui ne connaissent pas!
merci
09-09-2006 à 22:38:15
hihi g oublié ^^
Mais que dire sur le batch ? ...
Le mieu, je pense est de vous le faire découvrir en direct
bien sur si vous suivez bien les consignes données,
il ne devrait pas y avoir de dommages occasionnés sur votre ordinateur.
Heu oui donc le batch, he bien le batch est un language shell
fonctionnant sous windows en ligne de commande ou en
execution programmée par fichier.
Son utilisation est simple une suite de fonction (mot-clés)
prédéfinis agissent de tels ou tels facon sur votre ordinateur
par exemple, une fonction servira à éteindre votre ordi,
à supprimer un fichier, ou autre.
Pour revenir sur mon exemple la fonction pour éteindre l'ordi est : shutdwn
La plupart des fonctions batch attendent des "arguments", par exemple la fonction shutdown avec les arguments (ou options) pour commander à shutdown d'éteindre l'ordi en 00 secondes :
shutdown -s -t 00

Mais, me direz - vous (non ?), où dois-je taper ces commandes ? sur mon clavier oui, mais quand ?
He bien la meilleure facon de testet ces commandes batch
est d'ouvrir la console windows qui va nous permettre
d'executer nos commandes en ligne de commande, c'est
à dire qu'à l'appui de la touche Entrée, cmd (la console)
executera les commandes que l'on aura préalablement
tapée. Bon commenconc :p, ouvrez le menu Démarrer,
cliquez sur executer, ecrivez cmd et tapez Entrer.
La console windows apparait, (oui je sais c'est moche,
c'est tout noir beurk), heureusement, il existe une
foncyion (aussi appelée commande) permettant de
changer la couleur de l'environnement cmd, il s'agit de la
commande : color (facile à retenir ^^)
la commande color attend 1 arguments (les arguments
sont séparés par un espace), il s'agit d'une chaine de 2 charactères définissant chacun la couleur du texte et du fond. Voici leur correspondance :
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

Donc pour utiliser la commande color, on tapera :
color [attr]
attr représentant les couleurs choisi par exemple
pour la matrice on tape color 0A
car
0 -> couleur de fond = Noir
A -> couleur de texte = Vert

Voilà pour la focntion color,
pour avoir l'aide d'une commande, vous tapez
la_commande /?
dans cmd bien sur.

Revenons à la commande shutdown, curieux comme
vous êtes, vous avez surement déjà du regarder l'aide
de cette fonction en tapant shutdown /?
ce qui aurait affiché :
shutdown [-i | -l | -s | -r | -a] [-f] [-m \\nom_ordinateur] [-t xx] [-c "commentaire"] [-d up:xx:yy]

Sans argument Affiche ce message (identique à -?)
-i Affiche l'interface graphique, doit être la 1ère option
-l Ferme la session (ne peut pas être utilisé avec l'option -m)
-s Met l'ordinateur hors tension
-r Met l'ordinateur hors tension et le redémarre
-a Annule une mise hors tension système
-m \\nom_ordinateur Ordinateur distant à mettre hors tension/redémarrer/annuler
-t xx Définir le délai d'expiration pour la mise hors tension à xx secondes
-c "commentaire" Commentaire de la mise hors tension (maximum de 127 caractères)
-f Force des applications en cours d'exécution à se fermer sans avertissement

Donc pour par exemple éteindre l'ordi en 30 secondes en
affichant le message
"Your system has been locked by Diablo"
La fonction est :
shutdown -s -t 30 -c "Your system has been locked by Diablo"

L'argument -s précise que l'ordi doit être éteind, l'option -t 30, signifie le temps (ici 30 secondes), et le -c "...", indique le texte à afficher pendant les 30 secondes.
Autre point très important, si une chaine de charactère contient un ou plusieurs espace, la chaine doit être
entourée de guillements de préférences doubles, pour
indiquer à cmd que la chaine ne s'arrête qu'au prochain
guillements.
Ensuite, éteindre l'ordi, c'est bien, mais il faut aussi
savoir stopper cet arrêt, pour ça on utilise aussi
la fonction shutdown, mais avec l'option -a :
shutdown -a
Cette commande annule l'extension de l'ordi.

Pffiou, bon je pense que c'est tout pour l'intro, et aussi
pour avoir la liste de presque toutes le commandes
batch vous tapez help.

--Message édité par [UTB] Diablo le 09-09-06 à 22:39:41--
09-09-2006 à 23:19:32
Bon bah finalement c'est pas fini ^^
Je ne vous ai pas montré comment 'programmer' l'execution de commandes automatiquement.
Pour ceci, on utilise un fichier batch, ces fichier sont reconnaissables
par leur extension .bat, pour créer un fichier batch
ouvrez le bloc notes de windows, créez un fichier vide,
et ecrivez ceci

@echo off
title Diablo is in the place
color 0a
pause>NUL
cls
echo Knock, knock Neo
pause>nul
cls
echo Follow the white and don't forget
pause>nul
cls
echo This is not real !
pause>nul
cls
tree %SystemRoot%\system32 /f
tree %SystemRoot%\system32 /f
cls
pause>nul
cls
echo .
pause>nul
cls
echo ..
pause>nul
cls
echo ...
pause>nul
cls
exit

Hehe c'est marant comme batch, non ?
Non, comment ça ? Ha bah oui vous ne l'avez pas encore
lancé :p.
Alors pour le lancer vous restez dans le bloc-note,
vous faites Fichier -> Enregistrer -> main.bat
Et vous n'oubliez pas de mettre le champ de dessous
sur Tout types de fichiers.
Vous l'enregister sur votre bureau ou dans vos documents
c'est une décision arbitraire.

Bon vous le lancer (double clique) et vous admirez.
Ensuite un petit TP, vous aller regarder chaque ligne
de ce fichier et essayer de deviner quel est le but de
chacune d'elle.
ASTUCE : pour avoir une petite idée, vous pouvez
supprimer, la ligne pour voir ce que donne le batch
sans celle-ci. Ou si vous ne voulez pas supprimer de lignes
vosu mettez REM devant, REM est une commande permettant
d'exlure une ligne de commande, ce qui signifie que même
si la ligne est présente dans le fichier, elle ne sera pas
executé, ceci sert généralement à insérer des
commentaires, dans un fichier. Par exemple

REM ici on écrit à l'écran
echo texte 1
REM ici on change la couleur
color 0a
REM ici on met une pause
pause

Essayer ce code avec les REM, comme ci-dessus
et ensuite enlevez seulement les REM, pas la lignes hein ;)
vous verrez que cmd signale une erreur du style
'ici' n'est pas reconnu comme commande interne ou extern
Enfait on dit que les lignes précédées de REM ne sont pas
"interprérées" par CMD, c'est à dire qu'elles ne sont pas
prises en compte.
Sachez aussi que la case n'est pas réspectée en batch
ce qui veut dire que ReM est la même chose que rem
ou rEm.

Bon vous l'aurez compris, la commande echo,
sert à afficher un texte à l'écran, mais elle a d'autres
utilitées, elle peut aussi servir à éditer un fichier de la
facon suivante :
echo Contenu fichier 1 > 1.txt
Cette commande créera un fichier 1.txt (s'il existe, il sera
vidé de son contenu), et écrira Contenu fichier 1 dedans.
Pourquoi, eh bien, les commandes batch agissent en vérité
dans le coeur de nos ordis, et affichent un résultat sur la
sortie (OutPut en anglais) standart qui est l'écran,
cette sortie peut être diriger vers un fichier comme ici
ou vers tout autre support de sortie, comme une
imprimante
echo Texte a imprimer > PRN:
Le charactère > sert donc à modifier la sortie de notre
commande, qui est par defaut, l'écran.
Le défaut de > est le fait que le fichier soit effacé si il
existe, pour parrer ce problème, on utilisera >>
qui fonctionne de la même facon mais qui a l'avantage
d'éditer le fichier à partir de la fin par exemple

REM On crée un fichier 1.txt
echo Essai > 1.txt
REM On écri à la fin du fichier
echo reussi >> 1.txt

Le fichier 1.txt devrait donc contenir
Essai
reussi

car la commande ajoute automatiquement un retour-chariot
à la fin de la chaine de charactère à afficher.
Un autre commande sympa, la commande type
elle affiche le contenu d'un fichier par exemple
type 1.txt

Bon he bien, c'est pas mal com "petite explication" ^^

--Message édité par [UTB] Diablo le 09-09-06 à 23:20:47--
10-09-2006 à 09:46:02
Ouai ouai, bonne introduction pour les newbees.

Je précise une méthode plus simple (et peut-être plus conventionnelle) de créer un fichier batch:

dans l'invite de commande, tapez "edit monfichier.bat" et c'est parti, un fenêtre de type édit s'ouvre et vous n'avez plus qu'a enregistrer votre fichier. par contre, il s'enregistrera dans le répertoire où vous étiez lors de l'appelle de la commande. Mais vous pouvez toujours faire "enregistrer sous" dans le menu fichier de la fenêtre édit p)

Tiens, pendant que j'y pense, tu pourras stp faire un petit cours en parlant de plusieurs commande et entre-autre de la commande "tree". Car je crois me rappeller avoir coder un pitit programme qui décodait cette fonction quand on l'enregistrait dans un .txt. Rien de bien complexe mais je pourrais toujours le montrer. C'est du c++.

Voila A++

P.S. color 0A, tiens tiens moi aussi

--Message édité par triple_x le 10-09-06 à 09:47:30--
10-09-2006 à 12:07:36
hello
je pense que c'est tres bien resumé!!
ca a le merite d'etre claire
++