Initiation à MS/DOS
Auteur : Rachid Chouaki
1
Cette page est laissée intentionnellement blanche.
2 MS/DOS
Table des matières
1. INTRODUCTION ....................................................................................................................................... 4
1.1. QU'EST-CE QU'UN MICRO-ORDINATEUR ? .............................................................................................. 4
1.2. TRAITEMENT DE L'INFORMATION : ........................................................................................................ 5
1.3. LE SYSTEME D'EXPLOITATION ............................................................................................................... 5
2. LES COMMANDES DE BASE.................................................................................................................. 7
2.1. LES FICHIERS ET REPERTOIRES .............................................................................................................. 7
2.1.1. DEFINITIONS ......................................................................................................................................... 7
2.1.2. REPERTOIRE COURANT, PERE, FILS… ................................................................................................... 8
2.1.3. CHEMIN ABSOLU, CHEMIN RELATIF ...................................................................................................... 8
2.2. COMMANDES ........................................................................................................................................ 9
2.2.1. GENERALITES SUR L’UTILISATION DES COMMANDES ............................................................................ 9
2.2.2. LES COMMANDES DE GESTION DE REPERTOIRES.................................................................................. 11
2.2.3. LES COMMANDES DE GESTION DE FICHIERS ........................................................................................ 12
2.2.4. AUTRES COMMANDES ......................................................................................................................... 14
3. L’EDITEUR DE TEXTE EDIT ............................................................................................................... 16
4. GESTION DE LA MEMOIRE SOUS DOS ............................................................................................ 19
4.1. LA MEMOIRE D'UN ORDINATEUR ......................................................................................................... 19
4.2. ORGANISATION DE LA MEMOIRE DU PC.............................................................................................. 19
4.2.1. Mémoire conventionnelle .............................................................................................................. 19
4.2.2. Mémoire supérieure ou UMA (Upper Memory Area) ................................................................... 20
4.2.3. Mémoire paginée ou EMS ............................................................................................................. 20
4.2.4. Mémoire étendue ou XMS ............................................................................................................. 21
4.2.5. Mémoire haute ou HMA................................................................................................................ 21
4.3. TOPOGRAPHIE DE LA MEMOIRE ........................................................................................................... 22
4.4. GESTIONNAIRES DE MEMOIRE ............................................................................................................. 23
4.4.1. Options du driver [Link] ..................................................................................................... 23
4.5. COMMANDES DE GESTION DE LA MEMOIRE ......................................................................................... 24
5. SEQUENCE DE DEMARRAGE ET PERSONNALISATION DU SYSTEME.................................. 25
5.1. INTRODUCTION ................................................................................................................................... 25
5.2. LE BIOS ET LA ROUTINE POST .......................................................................................................... 25
5.3. LA SEQUENCE DE DEMARRAGE ........................................................................................................... 26
5.3.1. Le fichier [Link] ................................................................................................................ 27
5.3.2. Le fichier [Link].......................................................................................................... 29
[Link]. Les principales variables d'environnement .......................................................................................... 29
[Link]. Les programmes résidents ................................................................................................................... 32
5.4. PRISE ENCHARGE D’UN CD-ROM ...................................................................................................... 33
5.5. PRISE EN CHARGE DU RESEAU ............................................................................................................. 33
6. LES FICHIERS BATCH .......................................................................................................................... 34
6.1. NOTIONS GENERALES SUR LES FICHIERS BATCHS ............................................................................... 34
6.2. COMMANDES OU INSTRUCTIONS BATCH.............................................................................................. 34
6.3. CONTROL DE L'AFFICHAGE AVEC ECHO ET @ ..................................................................................... 34
6.4. DEFINITION DE COMMENTAIRES AVEC REM ........................................................................................ 35
6.5. ATTENTE D'UNE TOUCHE .................................................................................................................... 35
6.6. STRUCTURE CONDITIONNELLE IF ........................................................................................................ 35
6.6.1. Comparaison de chaînes de caractères......................................................................................... 35
6.6.2. Existence de fichiers et répertoires ............................................................................................... 36
6.6.3. Tester la valeur ERRORLEVEL .................................................................................................... 36
6.7. PASSAGE DE PARAMETRES AUX FICHIERS BATCHS .............................................................................. 36
6.7.1. Dépasser la limite de 9 paramètres............................................................................................... 36
6.8. VARIABLES D'ENVIRONNEMENT .......................................................................................................... 36
6.9. LA BOUCLE FOR .................................................................................................................................. 36
3
6.10. APPEL DE FICHIERS BATCHS ................................................................................................................ 37
6.11. MODIFICATION DU DEROULEMENT DU PROGRAMME ........................................................................... 37
6.12. REDIRECTIONS .................................................................................................................................... 37
7. ANNEXES.................................................................................................................................................. 39
7.1. LES SEQUENCES D’ECHAPPEMENT ANSI ............................................................................................ 39
7.2. COMMUNICATION ENTRE DEUX PC VIA LA LIAISON SERIE RS232 ...................................................... 40
7.3. LES COMMANDES WINDOWS 2000/WINDOWS XP .............................................................................. 40
4 MS/DOS
1. Introduction
Eléments externes d’un PC
1.1. Qu'est-ce qu'un micro-ordinateur ?
Un micro-ordinateur est une machine permettant de faire du traitement de l'information
(données), de stocker ces données pour archivage ou pour une modification éventuelle.
Cette machine est équipée d'un certain nombre d'éléments permettant à l'utilisateur de
communiquer avec elle :
L'unité centrale C'est l'élément principal, le cerveau, de la machine. C'est une boîte
dans laquelle se trouve le micro-processeur, la mémoire, le disque et
un certain nombre d'autres éléments vitaux pour le bon
fonctionnement de l'ordinateur.
Le clavier C'est le périphérique d'entrée, il permet à l'utilisateur de donner des
ordres à l'ordinateur. Ces ordres sont transmis via des circuits
électroniques au micro-processeur qui les interprétera et les exécutera.
L'écran C'est le périphérique de sortie, il permet à l'utilisateur de visualiser
son travail et à l'ordinateur d'afficher des messages.
La souris C'est le périphérique de pointage, ce périphérique n'est pas
indispensable, il apporte néanmoins un certain confort à l'utilisateur.
La souris est surtout utilisée dans les applications graphiques telles
que Windows où tout est visuel et où l'utilisation du clavier est
difficile et nécessite un long apprentissage.
5
1.2. Traitement de l'information :
Toute information tapée (saisie) au clavier, lue sur un disque ou affichée à l'écran est
interprétée par l'ordinateur comme une suite de données binaires, combinaison de 0 (zéro) et
de 1 (un), représentant le ou les caractères saisis, lus ou affichés. Ainsi une image affichée à
l'écran est une suite de 0 et de 1 représentant l'image.
Le traitement correspond à la manipulation (création, édition, modification, effacement) de
ces données.
Exemple :
Lorsque l'on rédige son CV (Curriculum Vitae) à l'aide d'un traitement de textes sur
ordinateur, on saisit des caractères au clavier qui forment pour nous utilisateurs des mots puis
des phrases, mais pour l'ordinateur, le texte saisit sera interprété comme une suite
ininterrompue de 0 et de 1.
1.3. Le système d'exploitation
Le rôle du système d'exploitation d'un ordinateur peut être décomposé en deux parties :
Il permet à l'utilisateur de donner des ordres à exécuter par la machine, on dit que
l'utilisateur saisit des commandes.
Il gère l'ensemble des ressources de la machine, à savoir le disque dur, le clavier et
l'écran.
Le système d'exploitation se charge de faire circuler les informations entre les différents
éléments constituant l'ordinateur : le micro-processeur (CPU) qui effectue les traitements, la
mémoire et les périphériques permettant une communication entre l'unité centrale et le monde
extérieur (clavier, souris, écran, imprimante, unités de disques...).
Pour réaliser ces opérations d'entrées/sorties, le système d'exploitation s'adresse à un
programme spécialisé, placé en mémoire morte (ROM : Read Only Memory) sur la carte
mère de la machine :
• Le BIOS (Basic Input/Output System) : utilisable à la mise sous tension,
contient le programme d'auto-test de la machine (POST : Power On Self Test) et
le programme de communication avec le matériel.
Par souci de compatibilité, c'est par son intermédiaire que les programmes
s'adressent au matériel.
Le système d'exploitation est lui-même composé de plusieurs programmes spécialisés chacun
dans une tâche :
• Le noyau du DOS (Disk Operating System) composé des programmes [Link] et
[Link] : Il permet essentiellement de gérer les fichiers sur le disque (création,
modification, effacement, copie), de gérer la mémoire et d'effectuer des
entrées/sorties de caractères (lecture au clavier, affichage à l'écran).
Le noyau du DOS n'est pas en mémoire ROM, il se trouve sur le disque et est
chargé au démarrage de la machine par le BIOS.
• L'interpréteur de commandes [Link]. Il permet à l'utilisateur de
communiquer avec l'ordinateur. Il interprète et exécute les ordres tapés au clavier.
6 MS/DOS
Il se trouve sur le disque, est chargé au démarrage et reste toujours actif en
mémoire. Mais lorsqu'un programme s'exécute, il libère la place qu'il occupe en
mémoire.
Architecture Logicielle du PC
7
2. Les commandes de base
2.1. Les fichiers et répertoires
2.1.1. Définitions
Fichier
Un fichier est une succession d’informations binaires correspondant à du texte, du son, de
l’image… Quelle que soit sa nature, un fichier est toujours défini par un nom, une extension
et des attributs1.
Un nom de fichier est composé de 2 parties :
- Le nom du fichier proprement dit, composé de 1 à 8 caractères maximum.
- Une extension, facultative, composée de 1 à 3 caractères maximum, permettant de
distinguer le type du fichier.
Exemple : AUTOEXEC . BAT
↑ ↑
nom de fichier extension
Un nom peut contenir tous les caractères sauf l'espace, la virgule, l'anti-slash (\) et le point
(utilisé comme séparateur du nom et de l'extension). De plus, certains noms réservés par le
système ne peuvent être utilisés nommer pour des fichiers : CLOCK$, CON, AUX, COM1,
COM2, COM3, COM4, LPT1, LPT2, LPT3, NUL, PRN.
Sous DOS, les extensions de fichiers exécutables sont .COM, .EXE et .BAT.
Lecteur logique
Une lettre est utilisée pour désigner les périphériques de stockage ou une portion de ceux-ci
(cdrom, disque dur, disquette…) : c’est le lecteur logique (ou unité logique). Par exemple, le
lecteur logique A: désigne le lecteur de disquette, le lecteur logique C: la première partition
du disque dur… Chaque lecteur logique comporte une arborescence de fichiers et de
répertoires lui étant propre.
Répertoire
Les répertoires sont utilisés pour classer des fichiers afin de permettre de les retrouver
facilement. Un répertoire peut comporter un ou plusieurs sous-répertoires (comportant eux
même des fichiers). On parle de structure arborescente pour désigner l’organisation des
répertoires sur un disque.
Le répertoire situé à la base de l’arborescence d’un lecteur et en dessous duquel sont créés
tous les répertoire de ce lecteur est appelé répertoire racine et symbolisé par un antislash (\).
Les règles de nommage des répertoires sont les même que celles s’appliquant aux fichiers.
1 cf. commande ATTRIB
8 MS/DOS
2.1.2. Répertoire courant, père, fils…
Répertoire courant :
Le répertoire courant est le répertoire dans lequel on se trouve lorsqu’on exécute une
commande. Par défaut, l’invite (= les caractères précédent le curseur clignotant sur la ligne de
commandes) indique le répertoire courant.
Répertoire père :
Le répertoire père est le répertoire situé juste un niveau au dessus du répertoire courant
Répertoire fils :
Le répertoire fils est le répertoire situé juste un niveau en dessous du répertoire courant
Répertoire parent :
Un répertoire parent est un répertoire situé un ou plusieurs niveaux au dessus du répertoire
courant.
Répertoire enfant :
Un répertoire enfant est un répertoire situé un ou plusieurs niveaux en dessous du répertoire
courant.
Répertoire racine :
Un répertoire racine est un répertoire situé au plus haut niveau sur un lecteur logique. Il ne
comporte pas de répertoire parent.
2.1.3. Chemin absolu, chemin relatif
Un chemin absolu désigne l’emplacement d’un fichier ou d’un répertoire de façon invariable
(sans considérer notre répertoire courant).
Exemple : le chemin C:\WINDOWS\COMMAND désigne le répertoire Command,
sous répertoire du répertoire Windows situé à la racine du lecteur C.
C:\
|----- WINDOWS
|----- COMMAND
Un chemin relatif désigne l’emplacement d’un fichier ou d’un répertoire à partir du
répertoire courant (sur un lecteur logique).
Exemple : le chemin WINDOWS\COMMAND désigne le répertoire Command,
sous répertoire du répertoire Windows situé sous le répertoire courant.
Cas1 : Si mon répertoire courant est C:\, alors WINDOWS\COMMAND désignera
C:\WINDOWS\COMMAND.
9
Répertoire courant
↓
C:\
|----- WINDOWS
|----- COMMAND
Cas 2 : Si mon répertoire courant est D:\BACKUP, alors WINDOWS\COMMAND
désignera D:\BACKUP\WINDOWS\COMMAND
Répertoire courant
C:\ ↓
|----- BACKUP
|----- WINDOWS
|----- COMMAND
2.2. Commandes
2.2.1. Généralités sur l’utilisation des commandes
On distingue les commandes internes et les commandes externes.
Les commandes internes sont intégrées au [Link] et toujours utilisables. Les
commandes externes se présentent sous la forme de fichiers et ne sont utilisables que si le
système peut accéder à ces fichiers2.
Une commande saisie sur la ligne de commande peut comporter 3 parties :
- la commande : obligatoire. C’est toujours la 1er chaîne de caractères
- l’argument de commande : il permet de préciser des informations utiles pour
l’exécution de la commande
- le commutateur : il permet d’utiliser des fonctions particulières de la commande.
La liste des commutateurs disponibles diffère d’une commande à l’autre.
Commande Argument(s) /Commutateur(s)
Exemple : La commande DIR C:\DOS /P /W affiche sur 5 colonnes (/w) et page par
page (/p) la liste des fichiers et répertoires contenus dans le répertoire C:\Dos.
Dans cette ligne de commande :
- DIR est la commande
- C:\DOS est l’argument de la commande Dir
- /W /P sont les commutateurs
NB : La plupart du temps, quand un argument de commande n’est pas défini et que la
commande accepte en argument un ensemble de fichiers ou un répertoire, la commande
s’applique au répertoire courant ou aux fichiers du répertoire courant.
2 cf. fonctionnement de la variable PATH
10 MS/DOS
Les caractères spéciaux
Lorsqu’on précise un argument de commande (par exemple pour désigner un ensemble de
fichiers ou de répertoires, ou un répertoire particulier), il peut être intéressant d’utiliser les
caractères spéciaux. Ces caractères revêtent un sens particulier pour le système.
Caractère Signification - Exemple
* Un caractère ou une chaîne de caractères quelconque.
(étoile)
Ex. : *.COM désigne tous les fichiers d’extension .Com, quel que soit
leur nom
? Un caractère quelconque
(point d’interrogation)
Ex. : [Link]? désigne tous les fichiers dont le nom est
AUTOEXEC et dont l’extension commence par BA
. Le répertoire courant
(point)
Ex. : DIR . affiche les fichiers et répertoires contenus dans le
répertoire courant
.. Le répertoire père
(point point)
Ex. : DIR .. affiche les fichiers et répertoires contenus dans le
répertoire père
/ Précède un commutateur de commande.
(barre oblique - slash)
Ex. : DIR /P
\ Désigne le répertoire racine (1) ou est utilisé comme séparateur de
(barre oblique inversée - champ lorsqu’on indique un chemin (2).
antislash)
Ex. (1) : CD \DOS
Ex (2) : CD WINDOWS\SYSTEM
11
2.2.2. Les commandes de gestion de répertoires
DIR
Affiche une liste des fichiers et sous-répertoires d'un répertoire.
DIR [unité:][chem][fichier] [/P] [/W] [/S] [/A[[:]attributs]] [/O[[:]ordre]]
[unité:][chem][fichier] unité, répertoire et/ou fichier(s) à afficher.
/P affiche page par page
/W affiche sur cinq colonnes.
/S affiche les fichiers du répertoire spécifié et de tous ses
sous-répertoires.
/A affiche les fichiers dotés des attributs spécifiés.
Attributs : D répertoires R lecture seule
H caché A archive
S système - préfixe signifiant "non"
/O affiche les fichiers selon un ordre spécifié.
Ordre : N nom S taille (croissante)
E extension D date et heure
G répertoires en tête - Préfixe pour l'ordre inverse
TREE
Affiche l'arbre des répertoires d'une unité ou chemin sous forme graphique.
TREE [unité:][chem] [/F] [/A]
/F affiche le nom des fichiers de chaque répertoire.
/A utilise des caractères ASCII au lieu de caractères étendus.
CD (CHDIR)
Change de répertoire ou affiche le nom du répertoire en cours.
CD [unité:][chem]
CD[..]
CD sans paramètre affiche l'unité et le répertoire en cours.
CD .. remonter au répertoire père (..).
CD \ remonter au répertoire racine (\).
CD chem accéder au répertoire chem.
MD (MKDIR)
12 MS/DOS
Crée un répertoire.
MD [unité:]chem
MD chem créer le répertoire chem
RD (RMDIR)
Supprime un répertoire.
RD [unité:]chem
RD chem effacer le répertoire chem
XCOPY
Copie des fichiers et des répertoires.
XCOPY source [cible] [/P] [/S [/E]] [/V]
source fichier(s) à copier.
cible emplacement et/ou noms des fichiers cible.
/P demande confirmation avant de créer un fichier cible.
/S ne copie que les répertoires non vides.
/E copie tous les sous-répertoires (même vides).
/V vérifie l'écriture de chaque fichier.
2.2.3. Les commandes de gestion de fichiers
TYPE
Affiche le contenu d'un fichier texte.
Type fichier affiche le contenu de fichier
EDIT
Lance l'Editeur MS-DOS qui crée et change les fichiers ASCII.
EDIT [unité][chemin][fichier] [/B] [/H]
[unité][chemin]fichier fichier à éditer.
/B permet d'utiliser un écran monochrome avec adaptateur couleur.
13
/H choisit la résolution la plus haute possible pour votre matériel.
COPY
Copie un ou plusieurs fichiers dans un autre emplacement.
COPY source [+ source [+ ...]] [cible] [/V]
source fichier(s) à copier.
cible répertoire et/ou nom de fichier cible.
/V vérifie l'écriture du ou des fichiers cible.
Pour concaténer des fichiers, spécifiez un seul fichier cible et plusieurs fichiers source
(utilisez les caractères génériques ou le format fichier1 +...+ fichierN).
MOVE
Déplace un ou plusieurs fichiers dans un autre emplacement.
MOVE source [cible]
source fichier(s) à déplacer.
cible répertoire cible.
DEL (ERASE)
Supprime un ou plusieurs fichiers.
DEL [unité:][chem]fichier [/P]
[unité:][chem]fichier fichier à supprimer, caractères génériques si plusieurs
/P demande confirmation avant de supprimer un fichier.
UNDELETE
Récupère des fichiers qui ont été supprimés.
UNDELETE [[unité:][chem]][fichier] [/LIST | /ALL] [/DT | /DOS]
[unité:][chem][fichier] fichier à récupérer. Optionnel
14 MS/DOS
/LIST affiche la liste des fichiers qui peuvent être récupérés.
/ALL récupère les fichiers spécifiés sans demander confirmation.
/DT utilise le fichier de suivi des suppressions.
/DOS utilise les informations du répertoire.
REN (RENAME)
Renomme un fichier ou un groupe de fichiers.
REN [unité:][chem]fichier1 fichier2
[unité:][chem]fichier1 fichier à renommer
fichier2 nouveau nom du fichier
Remarque : vous ne pouvez pas spécifier une nouvelle unité ou un nouvel emplacement pour
le fichier cible.
ATTRIB
Affiche ou change les attributs des fichiers spécifiés.
ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[unité:][chem]fichier] [/S]
+ active un attribut.
- désactive un attribut.
R attribut lecture seule.
A attribut archive.
S attribut système.
H attribut caché.
/S traite les fichiers de tous les sous-répertoires du chemin spécifié.
PRINT
Imprime un fichier texte tout en permettant de continuer à utiliser MS-DOS.
PRINT [/D:périph] [/Q:tailleq] [/T] [[unité:][chem]fichier[ ...]] [/C]
PRINT sans paramètre affiche le contenu de la file d'attente d'impression.
/D:périph spécifie un périphérique d'impression.
/Q:tailleq spécifie le nombre maximum de fichiers admis dans la file
d'attente d'impression.
/T supprime tous les fichiers de la file d'attente d'impression.
/C abandonne l'impression du fichier précédant le commutateur
et des fichiers qui le suivent.
2.2.4. Autres commandes
15
HELP
Fournit de l'aide pour les commandes DOS
Help [commande] affiche l'aide et la syntaxe de commande
On peut également obtenir l’aide concernant une commande avec commande / ?
DATE
Affiche ou modifie la date
TIME
Affiche ou modifie l'heure de l'horloge interne du système.
CLS
Efface l'écran.
16 MS/DOS
3. L’éditeur de texte EDIT
EDIT est un éditeur de texte qui permet de créer, modifier, visualiser le contenu de fichiers de
type texte. Les fichiers de type texte peuvent avoir de nombreuses extensions parmi
lesquelles : .TXT, .BAT, …
EDIT est un éditeur pleine page en opposition à un éditeur ligne comme pouvait l’être
EDLIN. Pour le lancer il suffit de taper :
EDIT <lecteur:\chemin><nom_de_fichier>
Pour accéder à la barre de menus, il faut utiliser la touche ALT
17
En tapant la lettre majuscule d’un menu ou en utilisant les flêches gauche ou droite, les menus
déroulants s’affichent.
18 MS/DOS
Pour choisir une option de menu, je peux utiliser les flèches bas ou haut ou taper le raccourci
clavier.
19
4. Gestion de la mémoire sous DOS
4.1. La mémoire d'un ordinateur
La mémoire est un bloc-notes où des informations qui englobent les instructions du
programme et les données sont conservées pendant leur utilisation. Quel que soit le type de la
donnée stockée en mémoire, elle est codée selon une combinaison de bits particulière,
interprétée de la manière qui convient au type de la donnée. La même combinaison peut être
considérée comme un nombre, une lettre de l'alphabet ou une instruction particulière en
langage machine en fonction du sens que nous lui donnons.
La mémoire est organisée en groupe d'octets (1 Octet = 8 bits) et afin que l'ordinateur puisse
travailler avec la mémoire, chaque octet possède une adresse. Les adresses mémoire sont
numérotées successivement à partir de zéro. Les nombres utilisés comme données peuvent
aussi l'être pour spécifier des adresses mémoire, de sorte que l'ordinateur puisse utiliser ses
possibilités de calcul pour parcourir la mémoire.
Disposer d'une grande capacité de mémoire vive ne suffit pas, il faut en effet que la machine
soit équipée d'un processeur ayant les capacités d'adressage suffisantes.
4.2. Organisation de la mémoire du PC3
Le MS-DOS initialement conçu pour le processeur 8088, gère au maximum 1 Mo de mémoire
vive. En réalité, la mémoire vive réellement disponible pour les applications est limitée à 640
Ko; l'espace mémoire compris entre 640 Ko et 1 Mo (384 Ko) étant réservé à son
fonctionnement.
Actuellement, cette capacité sur une machine représente le minimum de mémoire
indispensable pour exécuter une application standard.
Les développeurs ont ensuite imaginé des solutions pour dépasser cette fameuse limitation
d'où l'apparition des mémoires EMS et XMS.
La mémoire contenue dans une machine compatible IBM PC peut se scinder en plusieurs
parties.
4.2.1. Mémoire conventionnelle
Cette zone accessible en mode réel est disponible sur tous les types de PC. C'est la mémoire
principale où s'exécutent les logiciels (programmes d'applications, les drivers, utilitaires
résidents et MSDOS). Elle est adressée de 00000 à 9FFFF soit de 0 à 640 Ko, et est divisée
en deux parties :
Zone 1 : Elle commence à la cellule mémoire la plus basse 0000:0000, sa taille est fonction
de la version de DOS utilisée et elle contient :
- La table des vecteurs d'interruptions (1024 octets)
- La zone de données du BIOS
- La mémoire des variables internes
- Le code du système d'exploitation
3Voir topographie de la mémoire
20 MS/DOS
Zone 2 : Elle s'appelle zone des programmes transitoires (TPA : Transit Program Area).
C'est dans cette zone que les applications vont être chargées et exécutées.
4.2.2. Mémoire supérieure ou UMA (Upper Memory Area)
D'une taille de 384 Ko, elle s'adresse de A0000 à FFFFF, soit de 640 Ko à 1 Mo. Elle est
réservée en principe à la gestion des ressources matérielles notamment à l'écran, aux routines
d'entrées/sorties et aux cartes additionnelles (cartes réseau, scanner, ...).
Une partie de la mémoire supérieure est utilisée pour stocker les programmes intégrés dans la
ROM BIOS de l'ordinateur.
La ROM BIOS contient un jeu de programmes importants qui fournissent un ensemble de
services essentiels au fonctionnement de l'ordinateur. Les programmes de la ROM BIOS
comprennent trois parties.
- La première est utilisée uniquement quand l'ordinateur est mis sous tension. Elle
contient des programmes de test et d'initialisation qui vérifient son bon
fonctionnement, ces programmes sont plus communément appelés POST (Power On
Self Test)
- La seconde contient les programmes qui constituent le système de gestion
d'Entrées/Sorties (Input/Output). Pour faciliter le fonctionnement général de
l'ordinateur, le BIOS offre un ensemble de services utilisables aussi bien par le sytème
d'exploitation que par les applications.
- La troisième partie n'est valable que sur les IBM, c'est la ROM BASIC intégrée, qui
est exécutée en l'absence de système d'exploitation.
Cependant, il est rare que la totalité de la mémoire supérieure soit occupée et il est dorénavant
possible de récupérer des blocs libres dans cet espace, qui est bien sûr accessible en mode
réel, pour y charger des programmes résidents et soulager la mémoire conventionnelle.
Ces blocs de mémoire supérieure s'appellent UMB (Upper Memory Blocks) et peuvent être
envisagés sur tous type de processeur, or seuls les 80386 et plus disposent de fonctions de
gestion suffisamment élaborées pour faire correspondre par logiciel de la mémoire vive RAM
à ces adresses physiques réservées. C'est le rôle du driver [Link] qui peut être utilisé
sur toute machine à base de 80386 pour gérer les UMB.
La quantité de mémoire UMA disponible dépend des cartes présentes dans la machine et de
l'espace occupé par leur BIOS.
Cette mémoire présente la particularité d'être discontinue, offrant par exemple 32 Ko de
C0000 à C8000 et 128 Ko de D0000 à EFFFF.
La disponibilité des UMB sur 8088/8086 ne peut se faire que par des solutions matérielles,
donc plus coûteuses et moins souples.
4.2.3. Mémoire paginée ou EMS
Pour contourner la limite de mémoire adressable par un micro-processeur fonctionnant en
mode réel, des constructeurs ont imaginé un moyen d'augmenter la taille de la mémoire pour
les applications sans avoir à basculer le micro-processeur en mode protégé.
Ce standard prévoit que la mémoire de l'ordinateur peut être étendue jusqu'à 32 Mo et que sur
ces 32 Mo, seuls 64 Ko au maximum sont visibles à un moment donné, au travers d'une
fenêtre, spécifiée entre C0000 et EFFFF, c'est à dire en dessous de la limite des 1 Mo.
21
Cette fenêtre permet d'adresser 8 Mo de mémoire dans la version LIM 3.2 et jusqu'à 32 Mo
dans la version LIM 4.0 (LIM : Lotus Intel Microsoft).
La fenêtre de 64 Ko (Page Frame) est utilisée pour y inscrire des zones de mémoire
provenant d'autres zones d'adresses ( zone de mémoire étendue). Cette fenêtre est divisée en 4
pages de 16 Ko, la page ainsi créée contient le contenu de la mémoire en cours d'utilisation.
La totalité de la mémoire paginée (jusqu'à 32 Mo) est décomposée en pages mémoire et se
voit attribuer des adresses logiques (virtuelles) et des descripteurs (pointeurs).
L'EMS(Expanded Memory Specification) peut être utilisée sur tous les types de processeurs,
mais la lourdeur de la gestion par fenêtre ne permet d'y stocker que des données et non des
programmes exécutables.
Sur une machine équipée d'un processeur 80386 et plus, le driver [Link] permet
d'émuler cette mémoire EMS à partir de la mémoire étendue pour les programmes y ayant
encore recours.
4.2.4. Mémoire étendue ou XMS
Dans le standard EMS, un programme ne peut accéder qu'à 64 Ko maximum à un moment
donné. Avec le standard XMS (eXtended Memory Specification)cette limite n'existe plus,
mais pour accéder à la mémoire étendue, il faut que le programme bascule le micro-
processeur en mode protégé.
Cette zone de mémoire se situe au-delà du premier méga-octet et est gérée par le driver
[Link], chargé au démarrage de la machine.
On ne peut envisager la mémoire étendue qu'à partir des micro-processeurs 80286 et plus. La
seule limite imposée est la présence physique de mémoire.
4.2.5. Mémoire haute ou HMA
D'une taille de 64 Ko, cette zone de mémoire HMA (High Memory Area), située aux
premières adresses de la mémoire étendue, est utilisée pour y charger une partie du DOS.
L'accès à cette zone de mémoire ne peut se faire que si le driver [Link] est chargé.
22 MS/DOS
4.3. Topographie de la mémoire
MEMOIRE FFFFFH
ETENDUE
(XMS) ROM BIOS
64 Ko
OU
PAGINEE F0000H
(EMS)
1088 Ko ZONE POUR
10FFEH 64 Ko
HMA EXTENSION BIOS
1024 Ko 10000H E0000H
ZONE LIBRE
POUR EXTENSIONS
Cadre de page EMS 96 Ko
MEMOIRE Carte réseau
SUPERIEURE Carte prototype ...
C8000H EXTENSION BIOS
32 Ko
POUR CARTE EGA/VGA
C0000H
VGA/EGA TEXTE 32 Ko
640 Ko 0A000H
B8000H
VGA/EGA MONO 32 Ko
B0000H
VGA/EGA GRAPHIQUE 64 Ko
A0000H
MEMOIRE
CONVENTIONNELLE
0 Ko 00000H
23
4.4. Gestionnaires de mémoire
Afin de tirer profit de toute la mémoire disponible et de libérer le maximum d'espace en
mémoire conventionnelle, il faut que l'utilisateur configure son poste de travail en chargeant
les drivers de gestion de la mémoire livrés par le DOS.
• [Link] Gestionnaire de mémoire étendue (XMS) et permet l'accès à
la mémoire haute.
Se charge dans le fichier [Link]
• [Link] Emulateur de mémoire paginée (EMS) et permet le
chargement de drivers en mémoire supérieure
Par défaut, le driver [Link] émule la mémoire paginée.
Ne fonctionne que si [Link] a été chargé
Se charge dans le fichier [Link]
4.4.1. Options du driver [Link]
• Taille (en Ko):
Emulation d'une mémoire paginée (EMS) en mémoire étendue (XMS) de "Taille" Ko.
ex: device=c:\dos\[Link] 2048
• Noems :
Pas d'émulation de la mémoire paginée, dans ce cas le driver donne seulement accès à la
mémoire supérieure.
ex: device=c:\dos\[Link] noems
• X=AdDébut-AdFin :
Indique à [Link] de ne pas considérer la zone mémoire comprise entre AdDébut
et AdFin comme UMB, X voulant dire eXclude.
ex: device=c:\dos\[Link] noems X=C800-CFFF
• I=AdDébut-AdFin :
Force [Link] à gérer la zone mémoire comprise entre AdDébut et AdFin comme
UMB, I voulant dire Include.
ex: device=c:\dos\[Link] I=B000-B7FF
) Il est tout à fait possible d'inclure ou d'exclure plusieurs zones de mémoire
• Ram :
Emulation de la mémoire paginée si une application en fait la demande et accès à la
mémoire supérieure.
ex: device=c:\dos\[Link] ram
24 MS/DOS
4.5. Commandes de gestion de la mémoire
Après avoir chargé les drivers de mémoire, au démarrage, il faut indiquer au DOS dans quelle
zone vont se charger les pilotes de périphériques et les programmes résidents. A cette fin, le
DOS fournit un certain nombre de commandes ou directives à utiliser dans les fichiers de
configuration4.
• Dos = High Commande indiquant au DOS de se charger en mémoire
haute.
Il faut avoir installé [Link] pour utiliser cette
commande.
Se charge dans le fichier [Link]
• Dos = Umb Commande utilisée pour avoir accès à la mémoire
supérieure, elle n'a d'effet que si le driver [Link] a
été chargé avec l'option noems.
Se charge dans le fichier [Link]
• Dos = High, Commande utilisée pour indiquer au DOS de se charger en
Umb mémoire haute et pour avoir accès à la mémoire supérieure.
Il faut avoir installé [Link] pour utiliser cette
commande.
Se charge dans le fichier [Link]
• DeviceHigh Commande utilisée dans le fichier [Link], pour charger
les drivers en mémoire supérieure
Ne peut s'utiliser qu'avec la commande Dos = Umb
• LoadHigh Commande utilisée dans le fichier [Link] ou sur la
LH ligne de commande, pour charger les programmes en
mémoire supérieure
Ne peut s'utiliser qu'avec la commande Dos = Umb
4Voir Séquence de démarrage et personnalisation du système
25
5. Séquence de démarrage et personnalisation du système
5.1. Introduction
Lorsqu'on allume un PC et avant que l'utilisateur ait la main (cela se traduit par l'apparition
du prompt C:\> à l'écran), on peut observer une certaine activité de la machine.
Que se passe-t-il pendant ce laps de temps, à quoi correspond cette activité, comment la
machine détermine-t-elle le système d'exploitation à charger, c'est ce que nous allons étudier
ensemble.
5.2. Le BIOS et la routine POST
Pour fonctionner, le micro-ordinateur doit absolument exécuter un ensemble d'instructions
stockées en mémoire. Au démarrage, la mémoire mémoire vive5 ne contient aucune
information, c'est donc dans la mémoire morte6 que le microprocesseur va trouver les
premières instructions à exécuter, il s'agit des routines du BIOS (Basic Input Output System).
Le bios est placé en mémoire morte et est utilisable à la mise sous tension. Il contient le
programme d'auto-test de la machine, le POST (Power On Self Test), et le programme de
communication avec le matériel.
Le bios va effectuer dans un premier temps un ensemble de tests portant sur le bon
fonctionnement des composants actifs du PC (processeur, mémoire, clavier, circuits
auxiliaires, périphériques).
La routine post est chargée de ce travail. Afin de connaître les différents périphériques du PC
elle consulte la ram CMOS contenant toutes les informations nécessaires (Type du ou des
disques durs , type du ou des lecteurs de disquette, type de clavier, taille de la RAM, .. ).
Durant son exécution, le post transcrit les erreurs rencontrées sous forme de codes
numériques et/ou sonores permettant de déterminer quels sont les organes défectueux, ce sont
les codes erreurs post.
L'étape suivante consiste à rechercher, sur les unités de stockage disponibles, le système
d'exploitation à charger en mémoire RAM. Par la suite, le système d'exploitation prendra le
contrôle du PC et occasionnellement pourra faire appel aux services d'accès aux matériels mis
en place par le bios.
Cette méthode d'empilement des couches permet aux systèmes d'exploitation de ne pas
s'adresser directement au matériel. Le fabricant de la carte mère fournit donc une première
interface logicielle, le bios, sur laquelle repose le système d'exploitation.
Le bios est par conséquent étroitement lié au matériel, mais il fournit une interface
entièrement standardisée pour la couche supérieure. Par soucis de compatibilité, c'est par son
intermédiaire que les programmes s'adressent au matériel.
5RAM : Random Access Memory
6ROM : Read Only Memory
26 MS/DOS
Architecture logicielle du PC
5.3. La séquence de démarrage
c Exécution du post (Power On Self Test )
Il s'agit d'une routine bios implantée en ROM, dont le rôle consiste à tester le matériel
au démarrage de la machine (Mémoire, carte mère, processeur, disque dur, lecteur ...).
d Recherche du système d'exploitation
Cette fonction est également réalisée par une routine du bios. La recherche s'effectue
dans le premier secteur physique du disque dur ou de la disquette de boot (face 0;
secteur 0; piste 1).
Dans le cas du disque dur, ce secteur appelé MBR (Master Boot Record), contient la
table des partitions dans laquelle se trouve l'adresse de la partition active, celle où
réside le système d'exploitation à exécuter (DOS, UNIX, WINDOWS NT, OS/2, ....).
Elle contient également du code exécutable permettant de décoder cette information
puis d'effectuer un saut vers le secteur boot de cette partition.
e Chargement du Boot Strap Loader
Dans le cas du DOS, le secteur boot contient une routine d'amorce du système
appelée boot strap loader. Cette routine va rechercher et charger le noyau du système
d'exploitation en RAM, il s'agit des fichiers cachés [Link] et [Link] présents
sur la racine du disque. Le noyau pourra ainsi prendre le contrôle de la machine et
poursuivre la séquence de démarrage
27
f Chargement du noyau du système d'exploitation
Le noyau du système d'exploitation permet essentiellement de gérer les fichiers sur le
disque (création, modification, effacement, copie), de gérer la mémoire et d'effectuer
des entrées/sorties de caractères (lecture au clavier, affichage à l'écran).
g Interprétation du fichier [Link]
La première opération réalisée par le système d'exploitation, consiste à interpréter le
fichier texte [Link] contenant un ensemble de commandes de configuration ou de
chargement d'un certain nombre de drivers (pilotes) de périphériques.
h Chargement de l'interpréteur de commandes [Link]
L'étape suivante consiste à charger en mémoire le module permettant d'établir une
interface entre les besoins de l'utilisateur et les possibilités du système : le SHELL.
Ce module est constitué du fichier [Link].
Son rôle consiste à interpréter les commandes frappées au clavier et déterminer s'il
s'agit de commandes valides. L'interpréteur de commandes reste toujours actif en
mémoire, mais lorsqu'un programme s'exécute, il libère la place qu'il occupe en
mémoire.
i Exécution du fichier [Link]
Il s'agit là encore d'un fichier de configuration ayant pour but l'exécution automatique
d'un certain nombre de commandes au démarrage du PC.
C'est dans ce fichier que l'utilisateur définit les chemins de recherche pour les fichiers
exécutables (le path), l'invite de la ligne de commande (le prompt). Ce fichier permet
en outre de définir le clavier français, de charger le programme doskey gardant un
historique des commandes saisies par l'utilisateur durant la session de travail.
5.3.1. Le fichier [Link]
Il s'agit d'un simple fichier texte impérativement stocké sur la racine et permettant de définir
certaines options du systèmes et de charger en mémoire les programmes chargés du contrôle
des périphériques.
La syntaxe des commandes figurant dans le fichier est la suivante :
Commande = argument(s)
La commande DEVICE
Elle permet de charger les drivers de périphériques ( *.SYS)
Syntaxe : device=unité:\path\*.sys
ex : Chargement du driver de souris
device=c:\dos\[Link]
La commande COUNTRY
Elle permet de définir les conventions nationales concernant le format de la date, de l'heure,
du séparateur décimal. Par défaut MS-DOS utilise les conventions nationales des USA.
Syntaxe : country = code_pays, n° page de codes, unité:\path\[Link]
28 MS/DOS
ex: Conventions françaises
country=033,850,c:\dos\[Link]
La commande FILES
Elle permet de définir le nombre de fichiers pouvant être ouverts simultanément par le DOS
(par défaut leur nombre est 8)
Syntaxe : files = nombre
ex: 20 fichiers ouverts simultanément
files=20
La commande BUFFERS
Elle permet de définir le nombre de tampons mémoire à allouer pour l'accès aux fichiers. Ces
tampons d'une taille de 512 octets (1 secteur) permettent d'accélérer l'accès aux fichiers, mais
plus leur nombre est important plus ils occupent de la place en mémoire conventionnelle.
Le nombre de buffers à allouer dépend de la taille du disque. Les valeurs suivantes permettent
d'obtenir un compromis performance/occupation raisonnable.
disque < 40 Mo buffers=20
40 Mo < disque < 80 Mo buffers=30
80 Mo < disque < 120 Mo buffers=40
L'utilisation des buffers n'a plus d'intérêt dès lors que l'on utilise un gestionnaire de cache
disque de type SMARTDRV dont le rôle consiste à gérer des zones de tampons en mémoire
XMS.
La commande SHELL
Elle permet d'indiquer quel sera l'interprèteur de commandes du DOS. Par défaut, il s'agit du
fichier [Link]. Cette commande est souvent utilisée pour charger le [Link]
avec une zone d'environnement plus grande que les 256 octets réservés par défaut.
Syntaxe : SHELL= unité:\path\ *.exe ou *.com
ex: EDIT devient l'interprèteur de commandes
shell=c:\dos\[Link]
Chargement du [Link] avec une zone d'environnement de 512 octets
shell=c:\dos\[Link] /E:512
Du choix de l'interprèteur de commandes va dépendre le bon fonctionnement du systè[Link]
convient donc d'utiliser cette commande à bon escient.
29
5.3.2. Le fichier [Link]
Il s'agit d'un fichier texte également stocké sur la racine et interprété par le [Link].
Son rôle consiste essentiellement à définir la session de travail de l'utilisateur en gérant les
variables d'environnement systèmes et l'appel aux programmes résidents.
Les variables d'environnement
Il s'agit de zones mémoires identifiées par des noms et capables de stocker des chaines de
caractères. Ces zones communes à l'ensemble des applications, permettent de modifier la
configuration d'un poste de travail de façon dynamique. Les variables sont stockées dans la
zone d'environnement du [Link]
La commande interne Set permet de gérer les variables d'environnements.
• Création d'une variable
SET Nom_Variable=chaîne de caractères ©
• Visualisation des variables existantes
SET ©
• Effacement d'une variable
SET Nom_Variable=©
NB : Il est possible de paramètrer la quantité de mémoire conventionnelle allouée au
stockage des variables d’environnement à l’aide du commutateur /E de l’instruction
SHELL contenue dans le [Link]. Par exemple, l’instruction
SHELL=C:\[Link] /E:512 /P dédie 512 octets de mémoire conventionnelle au
stockage des variables d’environnement.
[Link]. Les principales variables d'environnement
COMSPEC
Le rôle de la variable d’environnement comspec est d’indiquer au système le chemin d’accès
à l’interpréteur de commandes [Link].
Lorsqu’on exécute une application sous MS/Dos (par exemple Edit), certaines fonctionnalités
du [Link] sont déchargées de la mémoire afin de disposer de plus de mémoire pour
l’exécution de l’application. A la fin de l’exécution de l’application, le système consulte le
contenu de la variable comspec afin d’accéder au [Link] et de pouvoir recharger en
mémoire les fonctionnalités précédemment déchargées.
Remarque : Quand cette variable n’est pas définie à l’amorçage du Dos, le système lui
attribue comme contenu le chemin d’accès à l’interpréteur de commandes utilisé pour
l’amorçage (Par exemple A:\[Link] lorsqu’on amorce avec une disquette). Le
contenu de la variable COMSPEC le plus courant lorsqu’on amorce avec un disque dur sous
DOS est C:\[Link].
30 MS/DOS
PROMPT
Le rôle de la variable PROMPT est de définir l’allure de l’invite (invite = caractères précédant
le curseur clignotant sur la ligne de commandes). Quand cette variable n’est pas définie à
l’amorçage du DOS, le système lui attribue comme contenu les valeurs $P$G.
Syntaxe: SET PROMPT=texte caractères
texte spécifie le texte à afficher en guise d’invite
caractères caractères interprétés d’une façon particulière par le système
Caractères Correspondance
$Q = (signe égal)
$S $ (signe $)
$T Heure
$D Date du jour
$P Lecteur et répertoire courant
$V Numéro de version MS-DOS
$N Lecteur en cours
$G > (signe supérieur à)
$L < (signe inférieur à)
$B | (barre verticale)
$_ Passe à la ligne suivante
$E ← (caractère ECHAP)
$H Retour arrière (Pour supprimer un
caractère)
PATH
Elle permet de définir les chemins de recherche pour les fichiers exécutables, utilisés par
l'interprèteur de commandes.
Ces chemins séparés par le caractère ";" , indiquent dans quels répertoires [Link]
doit chercher les fichiers éxecutables correspondant aux commandes frappées au clavier par
l'utilisateur. Cela permet d'exécuter une commande quelque soit le répertoire dans lequel on se
trouve.
La variable PATH peut être initialisée à l'aide de la commande set ou à l'aide de la
commande interne path.
ex: Définition de la variable PATH
SET PATH=C:\DOS;C:\WINDOWS
ou
PATH C:\DOS;C:\WINDOWS
La commande win appelle le fichier [Link] stocké dans le répertoire C:\WINDOWS
C:\>win
Chronologiquement le [Link] parcourt le répertoire courant à la recherche du fichier
puis utilise la variable PATH et parcourt les chemins définis dans leur ordre d'apparition7.
7Voir Organigramme de fonctionnement du [Link]
31
DEBUT
La 1ère chaîne de caractères
correspond-elle à une
commande interne ? Oui
Organigramme de fonctionnement Non
du [Link]
La 1ère chaîne de caractères
correspond-elle à un fichier
.COM, .EXE ou .BAT1 dans Oui
le répertoire courant ?
Non
La variable
PATH est-elle
Non définie ?
Oui
La 1ère chaîne de caractères
correspond-elle à un fichier
.COM, .EXE ou .BAT1 Oui
dans les répertoires2 définis
dans la variable PATH ?
Exécution du fichier
ou de la commande
Non
MSG : « Nom de commande ou de fichier incorrect(e) »
FIN
1
La recherche s’effectue dans cet ordre de priorités
2
Les répertoires spécifiés dans la variable PATH sont scrutés selon l’ordre défini dans la variable. Dès que
la chaîne de caractères est trouvée, la recherche est interrompue et le fichier exécuté.
32 MS/DOS
TEMP
Le rôle de la variable TEMP est de spécifier au système le répertoire à utiliser pour la création
de fichiers temporaires. Quand cette variable n’existe pas ou que son contenu ne correspond
pas à un chemin valide, le système crée ses fichiers temporaires dans le répertoire courant. A
l’installation du DOS, le répertoire C:\TEMP est créé et le contenu de la variable TEMP
désigne ce répertoire.
[Link]. Les programmes résidents
On entend par programmes résidents, des programmes toujours présents en mémoire jusqu'à
l'arrêt de la machine. Les principaux programmes résidents chargés par [Link] sont les
suivants :
[Link]
Syntaxe : keyb pays,page de codes, unité\path\[Link]
Programme de gestion du clavier précisant la disposition des touches du clavier, le DOS
utilise par défaut la disposition des touches du clavier QWERTY. Il est nécessaire de passer
en paramètre le type de clavier à la commande. Il faut en outre préciser sur la ligne de
commandes, le chemin du fichier [Link] contenant les définitions de claviers.
Il est également possible de préciser la page de codes utilisée pour l'affichage des caractères.
ex : Définition du clavier français et utilisation de la page de codes 850
keyb fr,850,c:\dos\[Link]
[Link]
Programme conservant un historique des commandes tapées au clavier.
[Link]
Syntaxe : mode periph codepage prepare =((page de codes) unité\path\*.cpi)
mode periph codepage select = page de codes
Programme permettant de charger la ou les pages de codes désirées et de gérer les ports série
et parallèles.
La page de codes correspond au jeu de 256 caractères de la table ASCII. Par défaut le DOS
utilise la page de codes matériel intégrée au clavier et à l'écran, cette page de code est
souvent la page de code anglo-saxonne et ne permet pas toujours d'afficher tous les caractères
souhaités.
Il faut dans ce cas utiliser une page de codes préparée, et avoir chargé préalablement dans le
fichier [Link] le driver [Link]. Ce driver permet de préparer l'écran et le clavier pour
l'utilisation d'une ou plusieurs pages de code.
Dans le fichier [Link]
device=c:\dos\[Link] con=(ega,850,1)
country=033,850,c:\dos\[Link]
33
Après avoir préparé les pages de codes, il faut utiliser la commande [Link], pour les
charger.
Dans le fichier [Link]
keyb fr,850,c:\dos\[Link]
mode con codepage prepare = ((850) c:\dos\[Link])
mode con codepage select = 850
Dans l'exemple ci-dessus, la page de code préparée est la page 850 correspondant à la page
Multilingue ou Iso-Latin1.
5.4. Prise encharge d’un CD-ROM
Le système MS/Dos est rarement utilisé aujourd’hui pour l’exploitation quotidienne d’un PC.
Il est par contre très utile pour des tâches de maintenance ou de mise en route d’une
configuration matérielle. Par contre il va très vite être indispensable d’installer un système
d’exploitation plus important ou des logiciels via un CD-Rom ou via le réseau.
Un CD-Rom n’est pas pris encharge directement au niveau du BIOS et il faut généralement le
configurer et le rendre accessible par les fichiers de personnalisation que sont le
[Link] et l’[Link].
Dans le [Link] il faut utiliser une commande DEVICE pour prendre en charge le driver,
du genre :
DEVICE=C:\[Link] /D :CDROM001 /UDMA /Q
Dans l’[Link] il faut utiliser une commande du genre :
C:\DOS\[Link] /D :CDROM001
5.5. Prise en charge du réseau
Le réseau par défaut utilisé maintenant est TCP/IP. Ce qui n’était pas le cas du temps de la
gloire de MS/Dos, à cette époque un réseau quelqu’il soit était assez rare et les premiers
réseaux de PC ont été dominés par Netware. La difficulté consiste aujourd’hui à permettre à
un PC sous Dos de se connecter sur un réseau TCP/IP à un serveur et de télécharger des
logiciels ou des systèmes d’exploitation en vue de leur installation sur le PC. L’explication
détaillée est trop vaste pour être exposée ici et fait l’objet d’un support spécifique. Néanmoins
il faut savoir qu’un certain nombre d’éléments seront indispensables comme : un driver pour
la carte réseau. Un logiciel qui gère les couches basses Ethernet. Si ce logiciel n’est pas
directement prévu pour TCP/IP, une couche logicielle intermédiaire de compatibilité (appelé
souvent packetdriver) et les couches supérieures représentée par les exécutables comme
[Link]. À noter : il est indsipensable de disposer d’un fichier de configuration pour
configurer le réseau et pour indiquer quel est le numéro de l’interruption logicielle qui permet
aux couches hautes de dialoguer avec la carte réseau.
34 MS/DOS
6. Les fichiers batch
6.1. Notions générales sur les fichiers Batchs
Les fichiers 8Batchs offrent la possibilité à l'utilisateur de faire exécuter automatiquement par
le DOS, les commandes ayant une syntaxe difficile, ou les opérations les plus fréquemment
utilisées. On y a recours soit pour automatiser les tâches, soit pour éviter à un utilisateur non
spécialiste d'avoir à saisir les commandes les unes après les autres au risque de faire des
erreurs.
Les fichiers batchs sont des fichiers de type texte, on les crée avec un éditeur de textes (EDIT)
et ils ont l'extension .BAT
Un fichier batch s'exécute en saisissant son nom sur la ligne de commande. On peut à tout
moment décider d'arréter l'exécution d'un fichier batch en tapant CTRL+C, le DOS demande
alors à l'utilisateur de confirmer l'arrêt de l'exécution du fichier batch.
6.2. Commandes ou instructions batch
A l'intérieur d'un fichier batch sont autorisées toutes les commandes du DOS qui peuvent être
utilisées sur la ligne de [Link] existe des instructions propres aux fichiers batchs.
Instruction Signification
@ Interdit l'affichage de la commande
Echo Affichage d'un message
Rem Définition d'une ligne de commentaires
If Exécution conditionnelle d'instructions
Goto Saut à une étiquette
:Label Définition d'une étiquette ou label
Pause Attente de l'appui d'une touche
Shift Décalage de la liste des paramètres (%0 - %9)
Call Appel d'un fichier batch
For Structure de boucle
6.3. Control de l'affichage avec Echo et @
Lorsqu'on exécute un fichier batch, par défaut chaque ligne en cours d'exécution s'affiche à
l'écran. Avec la commande Echo, l'affichage peut être activé ou désactivé. Lorsqu'il est
désactivé, les lignes d'instructions ne sont plus affichées.
Syntaxe : Echo [On | Off | Texte]
Echo off : au début d'un fichier batch interdit l'affichage des lignes d'instructions suivantes.
Echo on : rétablit l'affichage des lignes d'instructions.
Echo Texte : affichage de Texte à l'écran même si Echo est Off.
Ex :
Echo Off
Echo Ceci est mon premier fichier batch
8Batch signifie par lot
35
Même lorsque l'on a désactivé l'affichage au début du batch, la première ligne est toujours
affichée, puisque le mode Echo est activé (par défaut Echo est toujours On). Depuis DOS 3.3,
on peut interdire l'affichage d'une ligne d'instructions en la faisant précéder du signe @. La
première ligne du fichier batch peut se présenter de la façon suivante:
@Echo Off
6.4. Définition de commentaires avec Rem
Il est souvent utile, comme dans n'importe quel programme, d'insérer des commentaires afin
d'améliorer la lisibilité du programme ou d'en faciliter la maintenance. Dans un fichier batch,
l'insertion de commentaires se fait à l'aide de la commande Rem. Toute ligne d'instructions
commençant par Rem sera ignorée lors de l'exécution du fichier batch.
Rem Ceci est un commentaire
6.5. Attente d'une touche
Il arrive que l'on veuille suspendre l'exécution d'un fichier batch afin de vérifier son bon
déroulement ou de lire les messages s'affichant à l'écran.
La commande Pause permet de suspendre l'exécution du fichier batch et affiche à l'écran un
message invitant l'utilisateur à appuyer sur une touche quelconque pour continuer.
6.6. Structure conditionnelle If
Tout langage de programmation propose des instructions permettant de comparer des valeurs,
afin de permettre une exécution conditionnelle du programme. Les fichiers batchs proposent
la même possibilité avec l'instruction IF. L'instruction If permet de comparer des valeurs et de
tester l'existence de fichiers et répertoires. La syntaxe générale de linstruction If est :
IF [NOT] Condition Instruction
Condition est une condition quelconque dont la véracité est vérifiée par If à l'exécution. Si
l'affirmation est vraie, Instruction sera exécutée. C'est en général l'instruction Goto qui est
utilisée avec If, mais n'importe quelle instruction du DOS est autorisée.
Le test peut être inversé en faisant précéder la condition de NOT.
Voici les éléments pouvant être testés par If dans un fichier batch:
• Identité entre deux chaînes de caractères
• Existence de fichiers
• Existence de répertoires
• La valeur ERRORLEVEL
6.6.1. Comparaison de chaînes de caractères
On compare deux chaînes de caractères avec l'instruction "==". La comparaison de chaînes de
caractères ne présente d'intérêt que lorsque des paramètres sont saisis sur la ligne de
commande. Pour plus d'informations sur les paramètres, voir le paragraphe Passage de
paramètres aux fichiers batchs.
Syntaxe : IF Chaîne1 = = Chaîne2 Action
36 MS/DOS
6.6.2. Existence de fichiers et répertoires
Il est possible de tester l’existence d’un fichier ou d’un répertoire dans un fichier.
Syntaxe : IF EXIST [lecteur:\chemin\]nom_de_fichier
6.6.3. Tester la valeur ERRORLEVEL
Il est possible de tester le code d’achèvement de l’exécution d’une commande contenu dans
une variable réservée du nom de ERRORLEVEL. Le code 0 signifie exécution réussie. Une
particularité est à noter pour la commande CHOICE : le code renvoyé correspond à l’option
de réponse choisie par l’opérateur.
Syntaxe : IF ERRORLEVEL nombre commande_à_exécuter
Une particularité à noter : le test est fait sur l’opérateur >= il est donc impératif de tester les
valeurs en ordre décroissant en fonction du nombre de réponses possibles. De plus il faut faire
autant de tests que de réponses possibles.
6.7. Passage de paramètres aux fichiers batchs
Il est possible de lancer l’exécution d’un fichier batch en lui passant des paramètres séparés
par au moins un blanc.
Syntaxe : nom_fichier_batch.BAT param1 param2 … paramn
Chaque paramètre sera identifié dans le programme batch par une variable au nom réservé de
la forme : %1 pour le premier paramètre, %2 pour le second paramètre, …, %9 pour le
neuvième paramètre.
Neuf noms de variables sont réservés et uniquement 9.
6.7.1. Dépasser la limite de 9 paramètres
Pour dépasser la limite de 9 paramètres, il faut avoir recours à la commande SHIFT. Celle-ci
retire la première entrée de la liste des paramètre et fait glisser d’un cran tous les paramètres
passés. Ainsi le paramètre 2 devient le 1, le 3 devient le 2 et ainsi de suite, du coup le 10ème
qui n’était pas accessible devient le 9 et est accessible via la variable %9.
6.8. Variables d'environnement
Il est possible de charger des valeurs en mémoire système et de leur attribuer un nom pour les
manipuler plus facilement. Le libellé du nom est arbitraire et choisi par le programmeur. Il ne
doit pas dépasser 8 caractères et commencer obligatoirement par une lettre.
Syntaxe : SET nom_variable=valeur
6.9. La boucle for
La commande FOR permet d’exécuter une commande sur un nombre de fichiers d’une liste
de fichiers.
37
Syntaxe : FOR %%nom_variable IN (liste) DO nom_commande [paramètres]
Cette commande est relativement souple et permêt de nombreuses variantes. Pour plus
d’informations consulter l’aide du DOS : HELP FOR
6.10. Appel de fichiers batchs
L’appel du fichier exécutable se fait ordinairement par son nom. Dans ce cas, à la fin de
l’exécution de la dernière commande du fichier batch, le contrôle est rendu par le système à
[Link]. Ce qui implique qu’il est possible dans un fichier batch de faire appel à
un autre fichier batch, mais il faut que ce soit la dernière ligne du fichier appelant, car à la fin
du batch appelé il n’y aura pas de retour dans le batch appelant. Pour éviter ce problème, il est
possible de lancer l’exécution d’un batch dans un batch par la commande CALL. A la fin de
l’exécution du batch appelé le contrôle ne sera pas rendu à [Link], mais au batch
appelant qui pourra exécuter d’autres commandes.
Syntaxe : CALL nom_de_fichier.BAT
6.11. Modification du déroulement du programme
L’exécution d’un programme batch se fait séquentiellement, ligne par ligne du début à la fin
du texte. Pour modifier cet ordre de déroulement il est possible d’uitliser la commande de saut
GOTO qui doit obligatoirement être associée à une étiquette ou label qui est un nom (non
réservé) choisi arbitrairement par le programmeur et commençant par le caractère : : (deux
points).
Syntaxe : GOTO nom_label
…
…
:nom_label
6.12. Redirections
Les caractères de redirection permettent de rediriger la sortie ou l’entrée d’une commande.
Certaines commandes peuvent posséder une source et un résultat. La source est présentée en entrée de
commande et le résultat en sortie.
Source de commande :
Ensemble des caractères envoyés à une commande (sur son entrée) afin de préciser le cours
d’exécution de la commande.
Exemple : Quand j’exécute DEL *.* , avant de terminer son exécution, la commande Del
affiche un message de confirmation « Attention tous les fichiers seront
supprimés. Etes-vous sûr ? (O/N) ». Le caractère O (ou N selon la réponse
fournie) constitue la source de la commande Del.
38 MS/DOS
Résultat de commande :
Ensemble des caractères émis par une commande (sur sa sortie) au cours de son exécution.
Exemple : Quand j’exécute DIR les caractères affichés par la commande Dir constituent
le résultat de la commande.
Périphérique d’entrée/sortie standard :
Le périphérique d’entrée/sortie standard d’une commande est la console (Con) désignant le clavier et
l’écran. Par défaut une commande obtient sa source à partir du clavier et affiche son résultat à l’écran.
Caractères de redirection :
Il est possible de rediriger l’entrée ou la sortie d’une commande afin qu’elle obtienne sa source à partir
d’un fichier ou d’un commande, ou encore qu’elle envoie son résultat dans un fichier.
Les caractères de redirection sont >, >>, < et |.
> (supérieur) Envoie le résultat d’une commande dans un fichier texte. Si le fichier existe
déjà, il est écrasé.
Par exemple, quand j’exécute DIR > C:\[Link] , les caractères émis par
Dir sont envoyés dans le fichier C:\[Link] (et non pas affichés à l’écran). Si le
fichier C:\[Link] existait déjà, son précédent contenu a été effacé et il
comporte uniquement le résultat de la commande Dir.
>> Envoie le résultat d’une commande dans un fichier texte. Si le fichier existe
(double déjà, le nouveau contenu est ajouté à la suite du fichier. Si le fichier n’existe
supérieur) pas, il est créé.
< (inférieur) Présente le contenu d’un fichier texte en entrée de commande (afin qu’elle en
obtienne sa source).
Exemple : Un fichier [Link] contient le caractère O. Quand j’exécute la
commande DEL *.* < [Link] , la réponse à la question « Attention tous les
fichiers seront supprimés. Etes-vous sûr ? (O/N) » posée par Del est obtenu à
partir du fichier [Link] (plutôt qu’à partir du clavier).
NB : Il n’est intéressant d’utiliser la méthode du fichier texte que pour
automatiser les réponses aux questions d’une commande en posant plusieurs.
Dans ce cas il faut faire figurer les réponses aux questions posées par la
commande à des lignes successives. Quand une commande pose une seule
question, il est plus simple d’utiliser la commande Echo associé au tube | (cf.
ci-dessous).
| (tube) Présente le résultat d’une commande en entrée d’une autre commande (afin
qu’elle en obtienne sa source).
Exemple : Quand j’exécute la commande ECHO O | DEL *.* , le caractère O
(émis par la commande Echo) est redirigé en entrée de la commande Del, ce
qui permet de répondre automatiquement à la question « Attention tous les
fichiers seront supprimés. Etes vous sur ? (O/N) » posée par Del.
39
7. Annexes
7.1. Les séquences d’échappement ANSI
PROMPT $E[0m Annule les ordres précédents
PROMPT $E[1m écriture en gras
PROMPT $E[2m écriture en normale
PROMPT $E[30m écriture en italique
PROMPT $E[4m écriture en soulignée
PROMPT $E[5m écrtures en caractères clignotants
PROMPT $E[6m écriture en clignotant plus rapide
PROMPT $E[7m écriture en vidéo inverse
PROMPT $E[8m écriture en caractères invisibles
PROMPT $E[30m écriture en noir
PROMPT $E[31m en rouge
PROMPT $E[32m en vert
PROMPT $E[33m en jaune
PROMPT $E[34m en bleu
PROMPT $E[35m magenta
PROMPT $E[36m cyan
PROMPT $E[37m blanc
PROMPT $E[40m couleur de fond en noir
PROMPT $E[41m rouge
PROMPT $E[42m vert
PROMPT $E[43m jaune
PROMPT $E[44m bleu
PROMPT $E[45m magenta
PROMPT $E[46m cyan
PROMPT $E[47m blanc
PROMPT $E[x;yftexte positionne le curseur en (x,y) et écrit le texte
PROMPT $E[x;yH positionne le curseur en (x,y)
PROMPT $E[xA déplace le curseur vers le haut de x lignes
PROMPT $E[xB déplace le curseur vers le bas de x lignes
PROMPT $E[xC déplace le curseur vers la droite de x colonnes
PROMPT $E[xD déplace le curseur vers la gauche de x colonnes
PROMPT $E[s sauve la position du curseur
PROMPT $E[u replace le curseur à la position sauvegardé
PROMPT $E[K efface la ligne courante depuis la position du curseur
jusqu'à la fin de la ligne
PROMPT $E[Code_touche;"commande DOS";13p
affecte une commande DOS à une touche du clavier
40 MS/DOS
7.2. Communication entre deux PC via la liaison série RS232
Sous DOS, en utilisant les commandes MODE et COPY :
- Configurer le port série sur les deux PC sans oublier le /p ou /r (retry)
mode COM1: 96, n, 8, 1, p
- Emission de caractères
type file > com1
- Réception de caractères
copy com1 con --> Caractères recus affichés à l'écran
copy com1 file --> Caractères recus redirigés vers un fichier
A l'issue de cette commande, l'écran récepteur est toujours en attente de caractères car le EOF
n'a pas été envoyé. Pour y remédier, on utilise DEBUG :
- Envoi du EOF
Exécuter DEBUG sur l'émetteur
-o 3F8 1A ; Envoi de EOF sur COM1 (1A = EOF)
-q
7.3. Les commandes Windows 2000/Windows XP
ASSOC Affiche ou modifie les applications associées aux extensions de fichiers.
AT Planifie l'exécution de commandes ou programmes sur un ordinateur.
ATTRIB Affiche ou modifie les attributs d'un fichier.
BREAK Active ou désactive le contrôle étendu de CTRL+C.
CACLS Affiche ou modifie les listes de contrôles d'accès aux fichiers.
CALL Appelle un fichier de commandes depuis un autre fichier de commandes.
CD Modifie le répertoire ou affiche le répertoire en cours.
CHCP Modifie la page de code active ou affiche son numéro.
CHDIR Modifie le répertoire ou affiche le nom du répertoire en cours.
CHKDSK Vérifie un disque et affiche un relevé d'état.
CHKNTFS Affiche ou modifie la vérification du disque au démarrage.
CLS Efface l'écran.
CMD Lance une nouvelle instance de l'interpréteur de commandes de Windows.
COLOR Modifie les couleurs du premier plan et de l'arrière plan de la console.
COMP Compare les contenus de deux fichiers ou groupes de fichiers.
COMPACT Modifie ou affiche la compression des fichiers sur une partition NTFS.
CONVERT Convertit des volumes FAT en volumes NTFS. Vous ne pouvez pas convertir
le lecteur en cours d'utilisation.
COPY Copie un ou plusieurs fichiers.
DATE Affiche ou modifie la date.
DEL Supprime un ou plusieurs fichiers.
DIR Affiche la liste des fichiers et des sous-répertoires d'un répertoire.
DISKCOMP Compare les contenus de deux disquettes.
DISKCOPY Copie le contenu d'une disquette sur une autre.
DOSKEY Modifie les lignes de commande, rappelle des commandes Windows, et permet
de créer des macros.
ECHO Affiche des messages à l'écran ou active/désactive l'affichage des commandes.
41
ENDLOCAL Stoppe la localisation des modifications de l'environnement dans un fichier de
commandes.
ERASE Supprime un ou plusieurs fichiers.
EXIT Quitte l'interpréteur de commandes ([Link]).
FC Compare deux fichiers ou groupes de fichiers, affiche les différences entre eux.
FIND Cherche une chaîne de caractères dans un ou plusieurs fichiers.
FINDSTR Cherche des chaînes de caractères dans un ou plusieurs fichiers.
FOR Exécute une commande sur chaque fichier d'un groupe de fichiers.
FORMAT Formate un disque pour utilisation avec Windows.
FTYPE Affiche ou modifie les types de fichiers utilisés dans les associations
d'extensions.
GOTO Saute l'exécution à une ligne identifiée par une étiquette.
GRAFTABL Permet à Windows d'afficher un jeu de caractères en mode graphique.
HELP Affiche des informations sur les commandes de Windows.
IF Effectue un traitement conditionnel dans un fichier de commandes.
LABEL Crée, modifie ou supprime le nom de volume d'un disque.
MD Crée un répertoire.
MKDIR Crée un répertoire.
MODE Configure un périphérique du système.
MORE Affiche la sortie écran par écran.
MOVE Déplace un ou plusieurs fichiers d'un répertoire à un autre.
PATH Affiche ou définit le chemin de recherche des fichiers exécutables.
PAUSE Interrompt l'exécution d'un fichier de commandes et affiche un message.
POPD Restaure la valeur précédente du répertoire courant enregistré par PUSHD.
PRINT Imprime un fichier texte.
PROMPT Modifie l'invite de commande de Windows.
PUSHD Enregistre le répertoire courant puis le modifie.
RD Supprime un répertoire.
RECOVER Récupère l'information lisible d'un disque défectueux.
REM Insère un commentaire dans un fichier de commandes ou [Link].
REN Renomme un ou plusieurs fichiers.
RENAME Renomme un ou plusieurs fichiers.
REPLACE Remplace des fichiers.
RMDIR Supprime un répertoire.
SET Affiche, définit ou supprime des variables d'environnement Windows.
SETLOCAL Commence la localisation des changements de l'environnement dans un fichier
de commandes.
SHIFT Modifie la position des paramètres remplaçables dans un fichier de
commandes.
SORT Trie les éléments en entrée.
SUBST Affecte une lettre de lecteur à un chemin d'accès.
START Lance une fenêtre pour l'exécution du programme ou de la commande.
TIME Affiche ou définit l'heure de l'horloge interne du système.
TITLE Définit le titre de la fenêtre pour une session [Link].
TREE Représente graphiquement l'arborescence d'un lecteur ou d'un chemin.
TYPE Affiche le contenu d'un fichier texte.
VER Affiche le numéro de version de Windows.
VERIFY demande de vérifier que les fichiers sont écrits correctement sur disque.
VOL Affiche le nom et le numéro de série du volume.
XCOPY Copie des fichiers et des arborescences de répertoires.