fluxrss twitter faceboook

Création de fichiers de commandes Ms-dos en Batch :

 Publié le 20/06/2012

Matériel requis : Clavier, Souris, 

Logiciels requis : Windows, 

Salut à toi cher internaute ! ^^ Peut-être es-tu arrivé sur cette page après avoir consulté le tutoriel rédigé par Cécile, http://www.high-tuto.com/trucs-astuces/la-commande-shutdown/16 ? Si ce n'est pas le cas, peut-être est-ce un oublie de ta part ?! ^^ ou alors connais-tu déjà cette commande ?

Dans tous les cas, sache que tu trouveras ici de nouvelles façons d'utiliser cette commande, dans le but, dirais-je, de pieger tes camarades de classe ;)

Nous verrons donc comment créer un fichier Batch qui exécutera un programme basé sur la commande shutdown.

 Mais, qu'est-ce qu'un fichier Batch ?


C'est tout simplement un fichier comportant l'extension .bat ou .cmd et dans lequel, une ligne ou un ensemble de lignes de commandes Ms-dos sont présentes sous la forme d'un fichier texte.

Un double clic sur ce fichier exécutera automatiquement les commandes écrites dans celui-ci.

Création d'un fichier Batch :

1°) Effectuer un clic droit sur le Bureau ou dans un dossier et choisissez Nouveau -> Document Texte :

Nouveau document texte

 

2°) Ouvrez le fichier, choisissez Fichier -> Enregistrer sous puis renommez-le avec l'extension .bat ou .cmd.

 

3°) Pour ouvrir le fichier que vous venez de créer, vous devrez faire un clic droit dessus et choisir "Modifier", sinon ce dernier exécutera automatiquement le code qu'il contient.

Modification fichier .bat

 

Par défaut, le fichier s'ouvrira dans le bloc-notes qui s'avère être suffisant lorsque vous souhaitez créer de petits programmes.

Cependant, je vous conseille tout de même de télécharger le logiciel Notepad ++ (dont vous aurez un aperçu plus bas ;) ) qui est GRATUIT et très pratique lorsque vous vous lancez dans la programmation, grâce à sa numérotation des lignes et surtout la mise en couleur de votre code améliorant la lisibilité.

Notepad ++http://notepad-plus-plus.org/fr/download/v6.1.3.html

Bien sûr, le programme que vous créerez peut être plus ou moins compliqué.


Par exemple, si vous souhaitez créer un fichier vous permettant de lancer directement un shutdown, une ligne suffit et vous n'avez pas besoin d'un éditeur très compliqué :

Shutdown -s

 

Remarque :

Dans ce cas, vous pourriez lancer directement cette commande en passant par l'invite de commande MS-DOS, comme expliqué au début du tutoriel de Cécile.

Notre premier programme :

Je vous propose maintenant de créer un petit programme qui, à son lancement, exécutera un arrêt de la machine grâce à la commande Shutdown.

Premièrement, on affiche un message demandant à l'utilisateur de valider l'exécution du programme :

programme_01

 

La commande echo permet d'afficher le message qui suit dans l'invite de commandes.

La commande pause met en pause l'exécution du programme tant que vous n'appuyez pas sur une touche.

 

Voilà ce que cela donne lorsque nous lançons le programme :

cmd_01

 

Remarque :

Nous pouvons constater que chacune de nos commandes apparaît deux fois.

La première ligne sert à indiquer le chemin du fichier ainsi que la commande tapée dans celui-ci. Tandis que la suivante, lance l'exécution de la commande.

 

Pour enlever l'affichage de la première ligne, vous avez 2 méthodes :

1°) Enlever seulement cette ligne en saisissant avant votre commande le caractère '@' :

programme_02

 

2°) Enlever toutes les commandes en saisissant "@echo off" au début de votre fichier. Vous n'aurez pas besoin d'ajouter le caractère "@" à chaque début de commande :

programme_03

 

Voilà ce que cela devrait donner dans l'invite de commandes, c'est tout de même plus lisible ;) :

programme_02

 

Nous allons maintenant récupérer la saisie de l'utilisateur :

programme_04

 

La commande permettant de faire une saisie est la suivante :

SET /p nomDeVotreVariable = [Message affiché avant le curseur de saisie]

Pour réutiliser votre variable contenant la saisie, il faut entourer le nom avec le caractère "%".

Il faut maintenant gérer le choix de l'utilisateur :

programme_05

 

Pour pouvoir vous expliquer plus facilement tout ce que j'ai rajouté, je suis passé sous Notepad ++, la numérotation des lignes va bien nous aider ;).

J'ai également ajouté quelques commentaires grâce à la commande "REM", apparaîssant en vert ci-dessus.

Explications sur le fonctionnement de goto :

Cette commande permet de dire au programme de passer directement de telle à telle ligne sans devoir lire la suite du programme. Par exemple ici, si l'utilisateur saisit le caratère 'n' en choix, le programme passe alors directement de la ligne 14 à la ligne 26, sans lire ce qui est écrit entre elles.

Nous allons maintenant demander à l'utilisateur de définir le temps d'attente avant l'arrêt du pc. On utilise la même méthode que précédemment, cependant, il faudra vérifier que la saisie corresponde bien à un entier :

programme_06

 

Analysons ensemble la ligne 33 : echo %delai%|findstr /r "[^0-9]" > nul


Prenons la première partie : echo %delai%

Comme nous l'avons vu plus haut, echo sert tout simplement à afficher le contenu de la variable "delai".

Le caractère "|", appelé "pipe" ou "tube", que j'utilise, permet d'utiliser en tant qu'entrée de la commande findstr, le résultat de la commande echo, à savoir la saisie de l'utilisateur.

 

Passons à la deuxième partie, déjà plus compliquée : findstr /r "[^0-9]"

Nous n'avons pas encore vu cette commande (Findstr). Elle permet en fait de rechercher des chaînes de caractères dans un fichier ou tout autre chaine de caractères. Le résultat de la recherche est ensuite récupérable grâce à la variable système "ERRORLEVEL".

"[^0-9]" est une expression régulière. Le caractère ^ indique le début de la chaîne.

"0-9" indique qu'il faut pouvoir trouver dans la variable delai seulement des caractères compris entre 0 et 9.

 

La dernière partie : > nul

Elle permet grâce au caractère ">" de rediriger dans un fichier dont le nom est saisi à droite, le résultat récupéré à partir des commandes de gauche.

Ici, nous renvoyons le résultat vers le mot clé "nul", ce qui a pour effet de ne pas créer de fichier. La redirection du résultat permet d'annuler l'affichage de celui-ci sur votre fenêtre.

En clair, cette ligne 33 permet donc de vérifier que la saisie de l'utilisateur est bien un entier puis conserve le résultat de la recherche dans la variable ERRORLEVEL que nous utilisons juste après.

Dans ce qui suit, lignes 34 à 38, nous vérifions donc que la recherche a été un succès ou non et, grâce à la commande "goto", gérons ces deux cas possibles.

 

Nous en sommes donc à la ligne 41 et à la dernière partie du programme qui consiste tout simplement à exécuter le shutdown avec le délai saisi :

 programme_final

Voici un petit récapitulatif des commandes vues durant ce tutoriel :

Syntaxe

Description

echo [message] Affiche dans le fenêtre de ligne MS-DOS le "message" saisi
pause Met en pause l'exécution du programme jusqu'à ce que l'utilisateur appui sur une touche
@echo off A saisir au début du programme afin d'enlever l'affichage de la ligne indiquant l'emplacement du fichier et la commande utilisée
set /p Variable = [message]

Permet à l'utilisateur de saisir des caractères qui seront stockés dans "Variable". 

"message" sera affiché juste avant l'emplacement de saisie de l'utilisateur.

Pour réutiliser "Variable" dans votre programme vous devrez utiliser cette syntaxe : %Variable%

 REM [message] Permet d'écrire d'écrire des commentaires dans le code. Très utiles lorsque celui-ci devient complexe. 
 

goto [Suite]

Le programme continu son exécution à la ligne :Suite 
findstr Permet de rechercher des chaines de caractères dans un fichier ou une autre chaine. Le résultat est obtenu grâce à la variable système ERRORLEVEL 

 

Je vous invite à saisir help dans l'invite de commande MS-dos pour obtenir une liste de commandes bien plus complète.

 

Et voilà nous en avons fini avec ce programme et au passage, avec ce tutoriel ;)

J'espère que ce dernier vous aura plu et que vous aurez trouvé ce que vous cherchiez en venant ici ;)

Le petit plus :

Vous pouvez également créer un raccourci permettant de lancer votre programme avec une combinaison de touches.

- Créer un raccourci de votre fichier .bat ou .cmd.

- Cliquez droit sur le raccourci, choisissez "Propriétés".

- Allez dans l'onglet Raccourci, positionnez votre curseur dans la zone "Touche de raccourci".

- Vous avez maintenant la possibilité de choisir un raccourci de touches avec, soit Ctrl + Alt, soit Maj + Alt et la touche que vous avez choisi.

Raccourci de touches

A très vite sur High-Tuto !

High-Tuto vous recommande :

Commentaires



Par Idonentienoff,  le 01 May 2013 à 03:55:58

<a href=http://valtrexrxonline.com>buy valtrex without prescription</a> - <a href=http://valtrexrxonline.com>purchase valtrex</a> , http://valtrexrxonline.com read more

Par smicAgisa,  le 30 November 2013 à 09:08:39

Merci pour cette information interessante