# Autoexec.bat

AUTOEXEC.BAT est le nom d’un fichier système rencontré à l’origine dans le système d’exploitation MS-DOS. Il s’agit d’un fichier batch de type .bat (fichier de commandes au format texte) situé à la racine du périphérique sur lequel l’ordinateur démarre. Le nom du fichier vient de la concaténation des mots automatic et execution, décrivant ainsi sa fonction qui est d’exécuter automatiquement des commandes dès le démarrage du système. Le mot AUTOEXEC a également été créé de façon à respecter la règle de nommage du système de fichiers FAT qui impose un format 8.3 (c’est-à-dire 8 caractères, un point, 3 caractères).

## Utilisation

Le fichier AUTOEXEC.BAT est lu lors du démarrage de la machine quelle que soit la version de DOS, y compris dans la version 7.x de MS-DOS que l’on trouve avec Windows 95 et Windows 98. Windows Me analyse uniquement les variables d’environnement dans le but de réduire sa dépendance vis-à-vis des versions précédentes, mais ceci peut être évité.
Sous DOS, le fichier est exécuté une fois que le système d’exploitation a démarré et après le traitement du fichier CONFIG.SYS. Windows NT et ses successeurs, Windows XP et Windows Vista, analysent le fichier AUTOEXEC.BAT lorsqu’un utilisateur se connecte et, de la même façon que Windows Me, tout ce qui ne concerne pas les variables d’environnement est ignoré. Contrairement au fichier CONFIG.SYS, les commandes du fichier AUTOEXEC.BAT peuvent être saisies à l’invite DOS. Il s’agit de commandes standards que l’opérateur souhaite voir exécuter automatiquement au démarrage de l’ordinateur, il peut également contenir d’autres fichiers batchs.
Le fichier AUTOEXEC.BAT est utilisé la plupart du temps pour définir des variables d’environnement telles que le clavier, la carte son, l’imprimante et l’emplacement des fichiers temporaires. Il peut également servir à initialiser les utilitaires systèmes de bas niveau tels que :
* scanner anti-virus ;
* logiciel de cache disque (le plus connu étant SmartDrive (en) de Microsoft) ;
* pilotes de la souris ;
* pilotes du clavier ;
* pilotes du CD ;
* divers autres pilotes.

## Exemples

Dans les premières versions de DOS, le fichier AUTOEXEC.BAT était très simple. Les commandes DATE et TIME étaient obligatoires car les premiers PC et machines de classe XT n’avaient pas de pile pour sauvegarder l’horloge real time clock (RTC).
Les versions suivantes étaient souvent plus complètes et contenaient de nombreux pilotes de périphériques. L’exemple suivant est un fichier DOS de base en version 5.x, il contient uniquement les commandes essentielles :
Ces quelques lignes permettent de définir les variables d’environnement classiques, charger le cache disque SmartDrive (ligne 6), ajouter les répertoires standards dans le chemin par défaut (path) et initialiser les pilotes DOS du clavier et de la souris avant de démarrer Windows. La commande PROMPT permet d’afficher l’invite DOS "C:\>" au lieu de "C>" uniquement.
En général, les fichiers .sys sont exécutés depuis le CONFIG.SYS tandis que les fichiers .exe, tel que le programme de cache disque SMARTDRIVE fourni par Microsoft avec la version 5.x du DOS, sont appelés depuis l’AUTOEXEC.BAT. Certains périphériques, comme la souris, peuvent être lancés depuis le CONFIG.SYS avec un fichier .sys ou depuis l’AUTOEXEC.BAT avec un fichier .com, cela dépend du fabricant.
Les lignes commençant par les caractères "REM" comportent des remarques et ne sont pas exécutées. Ces lignes sont utilisées pour commenter ou désactiver temporairement des pilotes (exemple : celui du CD-ROM). Une autre méthode, moins courante, consiste à mettre deux signes deux points (::) pour commenter la ligne.

## Problèmes

Un des problèmes des versions de Windows tournant sur DOS est le manque de mémoire conventionnelle. Ceci est dû à la conception archaïque des premiers processeurs x86 qui ne pouvaient adresser que 1024 Ko, soit 640 Ko de mémoire disponible. Alors que ce problème a été réglé sur les générations suivantes de processeurs, DOS n’est pas capable de charger des pilotes de bas niveau dans la mémoire étendue par l’AUTOEXEC.BAT.
Les utilisateurs se retrouvent donc devant l’impossibilité de lancer des applications nécessitant plus de 512 Ko bien qu’ils disposent de 8192 Ko de mémoire vive, ceci car les pilotes DOS lancés depuis l’AUTOEXEC.BAT, notamment ceux du CD-ROM et ceux gérant la compression disque, ont consommé trop de mémoire conventionnelle.
Les utilisateurs sont donc obligés d’utiliser la commande 'Load High (LH)', utilisant le gestionnaire de mémoire emm386 chargé depuis le fichier CONFIG.SYS, de façon à essayer de déplacer par des mappages mémoire les pilotes se trouvant dans les premiers 640 Ko vers la plage des 640 à 1024 Ko. Le manque de mémoire conventionnelle a été un problème épineux pour les joueurs et a provoqué de nombreux et complexes appels vers les centres d’appels. De nombreux joueurs ont été obligés de créer et d’utiliser plusieurs disquettes de démarrage contenant chacune une configuration spécifique en fonction du jeu à lancer. Un autre solution consistait à créer un menu de démarrage à l'aide des fichiers AUTOEXEC.BAT et CONFIG.SYS, permettant ainsi de démarrer l'ordinateur avec une configuration différente selon le besoin (paramètres de gestion mémoire différents, chargement de driver d'un périphérique ou non, etc.).
La résolution des problèmes de pilotes et de mémoire conventionnelle a été la principale raison de l’adoption de l’interface de jeu Direct-X dans Windows , ce qui permet d’accéder à la totalité de la mémoire vive du PC et s’appuie sur des pilotes Windows pour l’accès au matériel.

## Démarrage DOS et Windows 9.x

Lorsque l’installation de Windows 95 est faite sur une installation DOS/WINDOWS existante, les fichiers CONFIG.SYS et AUTOEXEC.BAT sont renommés en CONFIG.DOS et AUTOEXEC.DOS. Ceci permet d’utiliser plus facilement le double démarrage entre Windows 9.x et DOS. Lorsque le démarrage se fait sous DOS, ils sont renommés temporairement en CONFIG.SYS et AUTOEXEC.BAT. La sauvegarde des fichiers en version Windows 95 se fait avec l’extension .W40.

## NT et OS/2

Sous Windows NT et ses dérivés, Windows 2000, Windows Server 2003 et Windows XP, le fichier AUTOEXEC.BAT a changé de nom au profit de AUTOEXEC.NT et se trouve dans le répertoire %SystemRoot \system32. Il n’est pas utilisé lors du démarrage du système d’exploitation mais lorsque l’environnement MS-DOS est lancé, c’est-à-dire quand une application MS-DOS est exécutée.
Le fichier AUTOEXEC.BAT est souvent présent dans le répertoire racine du disque de démarrage de Windows NT. Dans ce cas, Windows tient compte uniquement des commandes "SET" et "PATH" qu’il contient, de façon à définir les variables d’environnement globales pour tous les utilisateurs. Définir ainsi les variables d’environnement peut être intéressant si on veut démarrer sous MS-DOS à partir de ce disque (à condition d’avoir un disque au format FAT) ou si on veut garder les variables d’environnement après une réinstallation. Aujourd’hui, cette pratique étant très peu utilisée, le fichier reste vierge. L’application TweakUI de la collection PowerToys permet de faire la même chose (Parse Autoexec.bat at logon).
OS/2 n’utilise pas de fichier AUTOEXEC.BAT mais un fichier STARTUP.CMD.