Les fichiers de commande



Documents pareils

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

3IS - Système d'exploitation linux - Programmation système

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Module : Informatique Générale 1. Les commandes MS-DOS

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Tutoriel sur la programmation Batch Par Adrien REBOISSON - rabusier@aol.com

V- Manipulations de nombres en binaire

Cours Programmation Système

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Tutoriel sur la programmation Batch Par Adrien REBOISSON - rabusier@aol.com

Le prototype de la fonction main()

Algorithmique et Programmation, IMA

Initiation à la programmation en Python

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Le langage C. Séance n 4

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

SOMMAIRE. Travailler avec les requêtes... 3

Présentation du langage et premières fonctions

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Rappels Entrées -Sorties

Programmation C. Apprendre à développer des programmes simples dans le langage C

Ordinateurs, Structure et Applications

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Programmation système I Les entrées/sorties

I. Introduction aux fonctions : les fonctions standards

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

ACTIVITÉ DE PROGRAMMATION

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Les structures. Chapitre 3

ECLIPSE ET PDT (Php development tools)

Introduction au langage C

L informatique en BCPST

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

TP1. Outils Java Eléments de correction

Programmation C++ (débutant)/instructions for, while et do...while

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Programmer en JAVA. par Tama

I00 Éléments d architecture

Programmation système en C/C++

Langages et Concepts de Programmation Introduction à la programmation en langage C

GESTION DU PARC INFORMATIQUE

l'ordinateur les bases

Traitement de texte : Quelques rappels de quelques notions de base

Derrière toi Une machine virtuelle!

STAGE IREM 0- Premiers pas en Python

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Introduction à MATLAB R

Onglet sécurité de Windows XP Pro et XP Home

TP 1. Prise en main du langage Python

Chapitre 2 Devine mon nombre!

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

(Langage de commandes) Les commandes sont données par l'utilisateur grâce au clavier, à partir d'une "invite" ou "prompt" (par exemple "c:\>" )

Publipostage avec Calc

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Plan du cours. Historique du langage Nouveautés de Java 7

Ordinateurs, Structure et Applications

Programmation système de commandes en C

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Chapitre 10. Les interfaces Comparable et Comparator 1

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Procédure de sauvegarde - Cobian Backup

Bernard HAMM, Évelyne LAVOISIER

Cours Informatique 1. Monsieur SADOUNI Salheddine

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Programmation Classique en langage C

Java Licence Professionnelle CISII,

INITIATION AU LANGAGE JAVA

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Rapidolect Les Productions de la Columelle ( ) Page 1

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Programme awk------introduction rapide

Les chaînes de caractères

Java Licence Professionnelle CISII,

Chap III : Les tableaux

Excel 2007 Niveau 3 Page 1

INSTALLATION DE PEGASUS MAIL 3.12 c FR Avec l interface Harp

Procédure : Sauvegarder un Windows 7 sur un disque réseau

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Arguments d un programme

Débuter avec Excel. Excel

TP1 - Prise en main de l environnement Unix.

Chapitre 5 : Les procédures stockées PL/SQL

OS Réseaux et Programmation Système - C5

Premiers Pas en Programmation Objet : les Classes et les Objets

Cours d initiation à la programmation en C++ Johann Cuenin

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

Gestion des applications, TI. Tout droits réservés, Marcel Aubin

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Corrigé des exercices sur les références

Transcription:

Les fichiers de commande Fichiers ".bat" ou ".cmd" Un fichier de commande est un fichier texte contenant des commandes en mode invite de commande qui seront lues par l'interpréteur de commande COMMAND.COM ou CMD.EXE. COMMAND.COM est l interpréteur que l'on connaît depuis les débuts du DOS, il est devenu CDM.EXE depuis Windows NT. Un fichier de commande peut avoir n'importe quel nom excepté celui d'une commande existante. L'extension est généralement.bat mais depuis Windows NT l extension.cmd est permise aussi. On utilise les fichiers de commande pour créer des procédures automatiques pouvant être lancées par des personnes qui en ignorent les détails ou pour automatiser des séquences fréquemment utilisées. Un fichier de commande contient : une suite de lignes de commandes initialement destinées à être saisies au clavier + des instructions propres aux algorithmes ( affichages, tests, sauts, lectures et modifications de variables, etc.) Les commandes utilisées en saisie directe sont supposées connues. Nous allons passer en revue celles qui ne prennent tout leur sens que dans le cadre des fichiers de commande pour dialoguer avec l'utilisateur ou pour manipuler des variables. ECHO @ La commande Echo peut vous rendre deux types de service: 1 MS-DOS affiche généralement chaque ligne du fichier de commande au moment où il l interprète, juste avant de l exécuter. Cet "écho" des commandes peut être désactivé par la commande Echo Off ou autorisé à nouveau par la commande Echo On. Echo Off Plus d'écho sur la sortie standard (l'écran) Echo On L'écho est à nouveau autorisé Echo Selon que l écho des commande est autorisé ou non affiche : Commande ECHO activée ou Commande ECHO désactivée 2 Cette même commande est aussi utile pour afficher des messages à l'écran. Echo %variable% Echo Chaîne Echo. Affiche la valeur de la variable Affiche simplement cette chaîne de caractères Echo suivi d'un point provoque un retour à la ligne La commande Echo est inutile en mode de saisie directe mais il est tout de même possible de la tester dans ce mode. Si vous tapez la commande Echo Off vous risquez de ne plus voir apparaître l invite de commande, faites Echo On pour retrouver vos marques. Le @ placé en début de ligne dans un fichier de commande empêche l'écho de cette ligne sans pourtant en interdire l'exécution. Luc De Mey http://courstechinfo.be/os/fichiercmd.html 1

REM Le fichier de commande débute souvent par @Echo Off. Le @ masque l'affichage de cette ligne de commande. La suite de l instruction, la commande Echo Off empêche les échos des commandes suivantes. La commande Rem, placée en début de ligne, a pour fonction d'introduire un commentaire dans le code du fichier de commande. Elle est aussi très pratique pour désactiver une ligne de commande. PAUSE BREAK La commande Pause interrompt l'exécution du fichier de commande en affichant : Appuyer sur une touche pour continuer... Si ce message ne vous convient pas, annulez-le en le redirigeant vers la sortie fictive NUL. (PAUSE > NUL) La commande Break [On Off] active ou désactive le contrôle étendu du CTRL+C ou CTRL+BREAK. Normalement, MS-DOS ne teste la saisie des touches CTRL+C que lorsqu'il utilise les fonctions du clavier et de l'affichage à l'écran ou sur l'imprimante. Suite à la commande Break On, ce test des touches CTRL+C est fait plus souvent, notamment chaque fois que le programme fait un accès au disque. La commande Break utilisée sans argument permet de connaître l'état de cette commande. Les variables Les variables reconnues par l'interpréteur du langage de commande peuvent avoir plusieurs origines: - des variables d'environnement ; exemple: echo %username% - les paramètres passés au fichier de commande %1, %2, %9 - le nom du fichier de commande lui-même : %0 - une nouvelle variable SET N=10 - la variable ERRORLEVEL, elle contient la valeur rendue par le dernier programme exécuté. En principe, un programme bien conçu rend 0 s'il a pu s'exécuter sans erreur. Quand une erreur a eu lieu, le code rendu par le programme doit pouvoir servir à déterminer le type d'erreur qu'il a constaté. Variables d environnement Les variables d environnement sont des données auxquelles le système d exploitation réserve une partie de la mémoire vive. Elles sont accessibles à n importe quel programme. Parmi eux, l interpréteur de commandes recherche le contenu de la variable PATH pour connaître les emplacements des exécutables. Ces variables sont créées en leur fixant une valeur par la commande SET : SET Machin=Skoubidou La valeur d une variable s obtient en entourant son nom avec des signes % Echo %Machin% On supprime une variable avec la commande SET sans rien derrière le signe égal. SET Machin= Exemple de modification : PATH=%PATH% ;\Util Exemple d utilisation : DIR %TEMP% Luc De Mey http://courstechinfo.be/os/fichiercmd.html 2

Certains logiciels utilisent des variables d environnement qui leur sont propres. La libraire standard du C possède des fonctions getenv() et putenv() pour ce genre d opérations. Exemple : #include "stdio.h" #include "stdlib.h" int main(int argc, char* argv[]) { char *valeur; valeur = getenv("os"); printf("la variable OS contient %s\n", valeur); } putenv("zigoto=tartempion"); valeur = getenv("zigoto"); printf("la variable Zigoto contient %s\n", valeur); return 0; Résultat : La variable OS contient Windows_NT La variable Zigoto contient Tartempion SET SET [variable=[chaîne]] SET SET a SET variable=chaîne Donne à la variable la valeur chaîne SET variable= Supprime la variable Affiche toutes les variables d environnement Affiche toutes les variables dont le nom commence par a Attention, les espaces autour du signe égal comptent. SET A = abc Le nom de la variable comporte deux caractères : le A suivi d un espace. La valeur de la variable en compte 4 : un espace suivi de abc. SET /A [variable=]"expression" L'option "Assignation" est disponible depuis les extensions de commandes apparues depuis Windows NT. Cette option /A permet d'évaluer une expression arithmétique ou logique et d en attribuer la valeur à une variable. Nous plaçons les expressions entre guillemets. Un nom de variable dans une expression représente sa valeur. Il n est donc plus nécessaire de placer les noms entre %. Les valeurs numériques sont décimales (base 10) par défaut. On les fait précéder du préfixe 0x pour les valeurs hexadécimales (base 16) ou par 0 si elles sont saisies en octal (base 8) Exemples : SET /A "2+3" donne 5 (car 2+3= 5) SET /P variable="invite" SET /A "0xB+6" donne 17 (car 0xB = 11 et 11+6=17) SET /a "14 & 3" donne 2 (car 1110 AND 0011 = 0010) SET avec l'option "Prompt" attribue à la variable une valeur saisie par l'utilisateur. La commande commence par afficher l'invite avant de lire l'entrée. Luc De Mey http://courstechinfo.be/os/fichiercmd.html 3

Les sauts de programmes :label GOTO CALL Les fichiers de commande ne sont pas toujours de simples séquences d'instructions. Il arrive dans certaines conditions que des instructions doivent être ignorées ou au contraire être répétées un certain nombre de fois. Cela est possible en combinant les instructions de tests et les instructions de sauts. Le label est un nom quelconque précédé de deux points. Il marque un endroit donné du code pour servir de destination à la commande GOTO La commande GOTO suivie d'un label provoque un saut dans le programme à l'endroit où est défini le label. Exemple : GOTO label La commande GOTO :EOF permet de sortir d un fichier de commande. On se sert de cette forme de la commande GOTO pour faire l équivalent d un «return» en fin d une sous-routine. La commande CALL a été prévue initialement pour appeler un fichier de commande à partir d une autre. Une fois que les commandes du fichier appelé sont achevées on revient à l instruction qui suit le call. Exemple : CALL CmdFile2 Arg1 Arg2 appelle le fichier de commande CmdFile2 en lui passant les arguments Arg1 et Arg2. Les commandes du fichier appelé étant achevées on revient à l instruction qui suit le call. Ce retour à l instruction suivante n aurait pas eu lieu si on avait appelé CmdFile2 en inscrivant son nom comme une commande sans utiliser la commande Call. Depuis Windows NT, (les extensions de commande), la commande Call accepte les étiquettes comme cible. Pensez à terminer la routine visée par la commande GOTO :EOF pour assurer le retour sous la commande qui a fait l appel. L'alternative La syntaxe de la commande IF dépend de la version du système d'exploitation. Le mot ELSE fait partie des extensions de commandes dont on ne dispose que depuis Windows NT. Ainsi avec Windows95 ou 98 le mot ELSE n'est pas pris en compte. Pour connaître la syntaxe admise par votre système d'exploitation demander son aide en tapant la commande "IF /? ". NB. Les mots clés, dans les versions très anciennes du DOS, doivent s'écrire en majuscules. IF Condition Commande Soumet l'exécution de la commande à une condition. Si la condition est fausse la commande est ignorée Luc De Mey http://courstechinfo.be/os/fichiercmd.html 4

IF Condition Commande_1 ELSE Commande_2 Suivant que la condition est vraie ou fausse, ce sera la Commande_1 ou la Commande_2 qui s'exécutera. IF est une commande qui comme toutes les autres se termine par un retour à la ligne. En principe donc, les instructions IF et ELSE doivent être écrites sur une seule ligne. Ce n'est pas toujours possible car certaines commandes du DOS doivent elles-aussi s'achever par un retour à la ligne. On parvient à concilier ces deux exigences en plaçant les commandes entre parenthèses. Exemples : IF Condition ( Commande_1 ) ELSE Commande_2 Ici les commandes sont bien terminées par des retours à la ligne IF Condition ( Commande_1 ) ELSE ( Command_2 ) Commande_1 et commande_2 peuvent être remplacées par des blocs de plusieurs lignes de commandes. Cette disposition fait penser à celle du langage C ou du Java. Malgré l artifice des parenthèses, la commande IF reste à considérer comme une commande en une seule ligne. Cela a une conséquence étrange, qu il faut savoir prévoir : La ligne est lue complètement en échangeant les variables mises entre % avec leur valeur avant l exécution. Ce remplacement est appelé «l expansion» des variables. Il est fait à la lecture et non pas lors de l exécution de la ligne de commande. Ainsi la «ligne» suivante affiche ceci! set VAR=avant if "%var%" == "avant" ( set VAR=après ECHO VAR ) C:\>set VAR=avant C:\>if "avant" == "avant" ( set VAR=après ECHO avant ) avant C:\> MS-DOS interprète une commande entre parenthèses comme si elle était terminée par un retour à la ligne. IF Condition ( Commande_1 ) ELSE Commande_2 Expressions des conditions NOT condition ERROLEVEL nombre DEFINED variable EXIST fichier chaîne1 == chaîne 2 Si la condition est fausse Si le code rendu par le programme précédent est supérieur ou égal au nombre indiqué Si la variable est définie Si ce fichier existe Si chaine1 est identique à chaîne2 Luc De Mey http://courstechinfo.be/os/fichiercmd.html 5

D'autres opérateurs de comparaisons sont aussi fournis par les extensions de commandes dont sont dotés les interpréteurs de commandes les plus récents (CMD.exe) chaîne1 EQU chaîne2 chaîne1 NEQ chaîne2 chaîne1 LSS chaîne2 chaîne1 LEQ chaîne2 chaîne1 GTR chaîne2 chaîne1 GEQ chaîne2 Si chaîne1 est identique à chaîne2 Si chaîne1 est différente de chaîne2 Si chaîne1 est plus petite que chaîne2 Si chaîne1 est inférieur ou égale à chaîne2 Si chaîne1 est supérieur à chaîne2 Si chaîne1 est supérieur ou égale à chaîne2 L'option /I demande d'ignorer la casse lors de ces comparaisons. Si les deux chaînes ne contiennent que des chiffres, alors la comparaison est numérique au lieu d'être alphabétique. Luc De Mey http://courstechinfo.be/os/fichiercmd.html 6