MS Dos Le DOS sied

Un CD boîte à outils

Le cahier des charges

Le but est de créer un CD amorçable sous DOS contenant une partie des commandes jugées les plus utiles, permettant de lire ou d'écrire sur des mémoires de masse raccordées en USB (mémoire flash, disque dur, etc.) et affichant un menu pour lancer des applications DOS présentes sur le CD. Ici il s'agira de Ghost et de Partition Magiq mais il suffira de s'inspirer du modèle pour mettre les applications de son choix.

À part les applications commerciales et à une exception près, tous les ingrédients utilisés sont pris parmi les outils livrés en standard avec Windows 98.

Il s'agit d'une mise en pratique de toutes les notions abordées au fil des autres chapitres.

Rappel du principe d'un CD d'amorce

On peut créer plusieurs types de CD d'amorce. Ici c'est la méthode émulation disquette qui a été retenue.

Le CD se compose alors de deux parties. La première reçoit le l'image d'une disquette d'amorce standard y compris son secteur d'amorce. Cette partie n'est pas visible quand on observe le contenu du CD avec l'Explorateur Windows mais va être accessible au démarrage sous la lettre d'unité A:, comme s'il s'agissait d'une disquette. La lettre d'unité B: est attribuée automatiquement au vrai lecteur de disquettes.

La deuxième partie du CD est standard et se compose de toute l'arborescence de répertoires et de fichiers ajoutés au moment de la gravure. L'accès à cette deuxième partie peut être problématique en cas d'utilisation d'un lecteur optique USB (cf. CD d'amorce).

Mettre une rallonge à une disquette

La capacité d'une disquette standard est de 1,44 Mo. Ce n'est pas suffisant pour nos besoins mais une astuce permet de dépasser ce seuil fatidique : compresser une partie des fichiers qu'elle contient. On utilise pour cela l'utilitaire cabarc.exe de Microsoft et le résultat est un fichier cab (contraction de l'anglais cabinet) analogue à un fichier archive obtenu avec un outil commercial comme Winzip ou autre.

En contrepartie la disquette doit contenir l'outil de décompression, en l'occurrence extract.exe, le pendant de cabarc. On perd la place prise par extract mais globalement on y gagne.

Comme cette boîte à outils peut être utilisée pour supprimer les partitions du disque dur, les créer ou les formater, il n'est donc pas question d'effectuer la décompression sur celui-ci. On commence donc par créer un lecteur virtuel (une portion de la mémoire vive vue comme une unité de disque) où vont être stockés les fichiers décompressés.

Le fichier config.sys

Comme la détection de la présence d'une mémoire de masse USB est assez longue on peut s'éviter cette recherche systématique à l'aide d'une option de démarrage : prise en compte ou non des ports USB. Le fichier config.sys ci-dessous affiche donc un menu permettant de choisir l'option désirée (cf. créer un menu de configuration).

[menu]
menuitem=NOUSB, Sans prise en charge des ports USB
menuitem=USB, Avec prise en charge des ports USB

[USB]
device=himem.sys /testmem:off
dos=high,umb
devicehigh=usbaspi.sys /v/w
devicehigh=di1000dd.sys
devicehigh=usbcd.sys /d:usbcd001dos=high,umb

[NOUSB]
device=himem.sys /testmem:off
dos=high,umb

[COMMON]
devicehigh=oakcdrom.sys /D:mscd001
devicehigh=ramdrive.sys /E 2048
devicehigh=ansi.sys
devicehigh=display.sys con=(ega,,1)
country=033,850,country.sys
lastdrive=z

Examinons en détail le contenu de ce fichier.

Comme prévu il commence par la construction du menu, avec ou sans les ports USB. En fonction de l'option choisie la variable d'environnement système CONFIG va prendre la valeur du nom affecté à l'item de menu correspondant. S'ils sont totalement arbitraires les noms NOUSB et USB vont toutefois resservir dans le fichier autoexec.bat pour déterminer quelle option a été choisie. Les libellés sont ceux qui apparaîtront à l'écran. Attention le nombre de caractères est limité à 70.

On utilise systématiquement la mémoire haute. Comme les étiquettes USB et NOUSB délimitent des paragraphes du fichier config.sys qui sont exclusifs l'un de l'autre, il faut donc charger le gestionnaire himem.sys au début de chacun d'eux.

Pour une explication complète sur le chargement des pilotes nécessaires à la prise en compte des ports USB et du lecteur de CD se reporter au chapitre correspondant.

Comme son nom le suggère le paragraphe COMMON contient les lignes exécutées quelle que soit l'option choisie. On remarque au passage le chargement du gestionnaire ansi.sys qui est indispensable pour mettre de la couleur dans le menu applicatif présenté ci-après (cf. Gestion de menus avec des fichiers de commandes).

Précédemment il a été indiqué qu'on utilisait un lecteur virtuel. Il est crée par le chargement de ramdrive.sys en indiquant sa taille (2048 ko).

Le rôle des autres lignes est expliqué dans le chapitre consacré au contenu d'une disquette d'amorce.

Le fichier autoexec.bat

@ECHO OFF
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
cls
call setramd.bat %LglDrv%
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
path=%RAMD%:\;a:\

:USB
if "%config%"=="NOUSB" goto NOUSB
LH mscdex /v /d:mscd001 /d:usbcd001
goto suite

:NOUSB
LH mscdex /v /d:mscd001

:SUITE
set LglDrv=
LH doskey /insert > NUL
LH mouse.com
mode con cp prepare=((850) %ramd%:\ega.cpi)
mode con cp select=850
lh keyb fr,,%ramd%:\keyboard.sys
set dircmd=/P /O /L /A
call setcdrom.bat
if %cdrom%*==* goto nocd
setpath.bat

:NOCD
echo.
echo Ce CD ne contient pas de menu
pause

Le fichier autoexec.bat fait largement appel à des variables d'environnement, utilisateur ou système. Un chapitre leur est entièrement consacré.

Il fait également appel, comme d'autres fichiers de commandes dont le contenu est analysé plus loin, à la commande goto (aller à). Pour ceux à qui tout langage de programmation est étranger il est utile d'en préciser le principe. Un fichier de commande peut être divisé en plusieurs paragraphes, chacun étant identifié par une étiquette (un mot précédé du caractère ":" comme ici :USB, :SUITE, etc.). Quand l'instruction goto toto est rencontrée, les commandes qui suivent sont ignorées et l'exécution reprend au paragraphe indiqué par l'étiquette :toto.

La commande goto peut être utilisée seule (débranchement inconditionnel) ou en combinaison avec un test (débranchement conditionnel). Ce dernier cas est commenté plus bas.

Utilisation du lecteur virtuel

La manière dont est appelé setramd.bat et comment il fonctionne sont détaillés dans le chapitre Fichiers de commandes. On utilise toutefois ici un fichier setramd.bat légèrement modifié comme il sera expliqué plus loin. Après exécution de ce fichier la variable d'environnement RAMD contient la lettre d'unité du lecteur virtuel.

On y recopie le fichier command.sys et on affecte le nouveau chemin d'accès à la variable d'environnement système COMSPEC. Ceci permet de travailler ultérieurement sans la présence du CD d'amorce (pour mettre un CD de données à la place par exemple).

Bien que cela ne soit pas absolument nécessaire le fichier extract.exe est recopié lui aussi sur le lecteur virtuel puis exécuté pour décompresser le contenu du fichier ebd.cab (ebd pour l'anglais embeded) dont le contenu est détaillé plus loin. On dispose donc maintenant de tous les fichiers qu'il incluait.

Pour ne pas avoir à préciser par la suite l'emplacement de tel ou tel fichier, on termine cette première séquence de commandes en incluant la lettre du lecteur virtuel dans le chemin de recherche (cf. commande path).

Les parties suivantes sont introduites par des étiquettes afin de n'exécuter que les commandes pertinentes en fonction de l'option choisie au départ laquelle est déterminée en fonction du contenu de la variable d'environnement système CONFIG (voir ci-dessus).

Les paragraphes USB et NOUSB

Comme il ne faut exécuter que l'un ou l'autre de ses paragraphes, on effectue un débranchement conditionnel. L'instruction if (si) permet de faire un test. Si la condition testée est vraie, la commande associée est exécutée. Dans le cas contraire elle est ignorée et on passe à la ligne suivante.

On commence donc par tester le contenu de CONFIG et si cette variable contient NOUSB on passe directement aux commandes qui suivent l'étiquette NOUSB.

La différence entre ces deux paragraphes tient uniquement aux paramètres de lancement de mscdex, le programme qui permet de voir un lecteur optique comme une unité de disque. Si les ports USB ne sont pas pris en compte seul le nom d'unité symbolique défini dans le fichier config.sys pour le pilote oakcdrom.sys est cité, dans l'autre cas il faut également mentionner celui défini pour usbcd.sys.

Paragraphe Suite

Ici on exécute toutes les commandes qui ne dépendent pas de l'option choisie. Le rôle de la plupart est expliqué dans le chapitre disquettes.

La variable LGLDRV n'étant plus utile, on la supprime afin de récupérer de la place dans le pool des variables d'environnement.

Charger doskey permet de stocker la suite des commandes passées au clavier puis de les rappeler à la demande. On en profite pour mettre le clavier en mode insertion plutôt que de rester en mode refrappe, le mode par défaut.

On charge ensuite un pilote de souris afin de pouvoir utiliser ce dispositif dans les applications qui le permettent. Les commandes qui suivent permettent de disposer du code de page du français et du clavier correspondant. Maintenant, quelques remarques au passage.

Chaque fois que les messages générées par l'exécution d'une commande n'ont pas de réelle utilité, la sortie est redirigée (voir la rubrique correspondante) vers le périphérique symbolique NUL afin d'en supprimer l'affichage.

La commande path permet d'indiquer des chemins d'accès pour des fichiers exécutables (exe, com, etc.) mais pas pour les fichiers de données dont ils pourraient avoir besoin. Ceux-ci ne sont recherchés que dans le répertoire courant. C'est pourquoi le nom de fichiers passés en paramètre est précédé de leur chemin d'accès quand ils sont stockés sur le lecteur virtuel.

Avec la disquette standard de Windows 98, le programme setramd.bat attribue la lettre du lecteur de CD à la variable d'environnement CDROM. Lorsque plusieurs lecteurs optiques sont présents, seul le premier est pris en compte et si le CD a été inséré dans l'autre il est impossible de spécifier automatiquement sa lettre d'unité. La variable CDROM ne pointe pas sur le bon.

Cette partie du programme setramd est donc ici supprimée (c'est la retouche annoncée au tout début) et c'est setcdrom.bat qui se charge d'attribuer la bonne valeur à CDROM. Le mécanisme est expliqué plus loin.

Au retour on effectue un débranchement conditionnel. Si la variable d'environnement CDROM est vide (cas où le fichier menu.bat n'a pas été trouvé) on se débranche à l'étiquette NOCD pour afficher un message, la commande pause qui suit permettant de le rendre non fugitif.

Dans le cas contraire on appelle setpath.bat qui complète la liste des chemins à utiliser qui, on va le voir plus loin, passe la main au programme d'affichage du menu. Deux remarques à nouveau.

En fait une variable d'environnement n'existe que si elle contient quelque chose. On ne peut donc pas tester directement qu'elle est vide ou non et il faut utiliser un artifice : concaténer le contenu éventuel avec un caractère convenu. La chaîne de caractères %CDROM%* ne contient que le caractère * si CDROM n'existe pas.

L'appel de setpath est sans retour (on n'a pas utilisé la commande call). La suite du fichier autoexec.bat n'est donc jamais exécutée dans ce cas, ce qui dispense d'un goto vers une étiquette de fin, même si cela a l'air un peu bancal.

Ouf, c'en est fini pour l'examen détaillé du fichier autoexec.bat. Nous ne sommes toutefois pas au bout de nos peines car, nous l'avons vu, il fait appel à d'autres fichiers de commandes dont l'exécution interfère avec la sienne. Poursuivons donc en les prenant dans l'ordre où ils sont invoqués.

Le fichier setramd.bat

@echo off
set RAMD=

echo.
echo Préparation du démarrage de votre ordinateur.
echo Ceci peut prendre quelques minutes. Veuillez patienter...
echo.

a:\findramd
if errorlevel 255 goto no_ramdrive
if not errorlevel 3 goto no_ramdrive
goto do_shift

:loop
if errorlevel %1 goto no_shift

:do_shift
shift
shift
if not %1*==* goto loop
goto no_ramdrive

:no_shift
set RAMD=%2
if "%RAMD%"=="C" goto c_drive
goto success

:c_drive
echo Windows 98 a détecté que votre lecteur C ne contient pas de partition
echo FAT ou FAT32 valide. Il y a plusieurs causes possibles.
echo.
echo 1. Le disque doit être partitionné. Pour créer une partition sur le lecteur,
echo exécutez FDISK à partir de l'invite MS-DOS.
echo.
echo 2. Vous utilisez un logiciel de partition d'un autre éditeur. Dans ce cas
echo retirez la disquette de démarrage et redémarrez votre ordinateur.
echo Suivez ensuite les instructions à l'écran vous indiquant comment démarrer
echo à partir d'une disquette.
echo .
echo 3. Certains virus peuvent également empêcher la détection du disque C.
echo Vous pouvez utiliser un programme anti-virus pour vérifier la présence de
echo virus.
echo.
goto success

:no_ramdrive
echo Il n'a pas été possible de créer un disque virtuel pour les outils de
echo diagnostic. Ceci peut être dû au fait que votre ordinateur ne dispose pas de
echo la quantité de mémoire étendue minimale nécessaire.
echo.

:success

Comme il a déjà été dit plus haut l'analyse pas à pas de ce fichier de commandes est faite dans le chapitre Fichiers de commandes. Si on le compare avec l'original contenu sur la disquette standard de Windows 98 on s'aperçoit, comme annoncé, qu'on n'y parle plus de la variable d'environnement CDROM. C'est la seule modification apportée.

Le fichier setcdrom.bat

@echo off

findcd -f\menu.bat -e

if errorlevel 0 set CDROM=A
if errorlevel 1 set CDROM=B
if errorlevel 2 set CDROM=C
if errorlevel 3 set CDROM=D
if errorlevel 4 set CDROM=E
if errorlevel 5 set CDROM=F
if errorlevel 6 set CDROM=G
if errorlevel 7 set CDROM=H
if errorlevel 8 set CDROM=I
if errorlevel 9 set CDROM=J
if errorlevel 10 set CDROM=K
if errorlevel 11 set CDROM=L
if errorlevel 12 set CDROM=M
if errorlevel 13 set CDROM=N
if errorlevel 14 set CDROM=O
if errorlevel 15 set CDROM=P
if errorlevel 16 set CDROM=Q
if errorlevel 17 set CDROM=R
if errorlevel 18 set CDROM=S
if errorlevel 19 set CDROM=T
if errorlevel 20 set CDROM=U
if errorlevel 21 set CDROM=V
if errorlevel 22 set CDROM=W
if errorlevel 23 set CDROM=X
if errorlevel 24 set CDROM=Y
if errorlevel 25 set CDROM=Z
if errorlevel 26 goto erreur
path=%path%;%CDROM%:\
goto fin

:erreur
set CDROM=

:fin

On commence par passer la commande findcd. Il ne s'agit pas d'une commande standard du DOS mais d'une commande développée par Bart Lagerweij et que l'on peut télécharger ici. C'est la seule entorse faite à notre règle de n'utiliser que des outils livrés en standard avec Windows.

La commande findcd retourne dans la variable errorlevel un nombre, de 0 à 25, correspondant à la lettre d'unité du lecteur optique où se trouve un fichier donné, ici menu.bat. Les commandes qui suivent permettent de retrouver la lettre en fonction du code utilisé : 0 pour A, 1 pour B, etc.

Chacune d'elle peut se lire comme suit : si errorlevel égal ou supérieur à ..., alors.

Supposons que findcd ait renvoyé le nombre 6. Le premier if affecte la valeur A à CDROM puisque 6 est supérieur à 0. Le deuxième, change cette valeur en B, le troisième en C, etc. Au sixième CDROM prend la valeur G mais à partir du septième cette valeur n'est plus modifiée (6 est inférieur à 7). G: est la lettre d'unité du lecteur optique où a été trouvé le fichier menu.bat.

Pourquoi findcd ne retourne-t-il pas directement cette lettre d'unité et impose-t-il une telle gymnastique ? Tout simplement parce que errorlevel, c'est une contrainte du DOS, ne peut contenir qu'un nombre.

Si errorlevel est supérieur ou égal à 26 c'est que le fichier menu.bat n'a été trouvé nulle part. Dans ce cas on saute la suite et l'on supprime la variable d'environnement CDROM.

Dans le cas contraire on ajoute la lettre d'unité du lecteur optique à la liste des chemins de recherche avec la commande path puis on passe au paragraphe de fin où l'on ne fait rien.

Comme setcdrom.bat a été appelé par une commande call, on retourne donc ensuite dans le fichier autoexec.bat pour en poursuivre l'exécution, à la ligne qui suit cet appel.

Le fichier setpath.bat

@echo off
path=%path%;%CDROM%:\ghost\;%CDROM%:\p_magiq\
menu

Voici un fichier de taille modeste mais néanmoins fort utile.

Pour une bonne gestion du contenu du CD, les applications (Ghost et PQ Magic dans notre cas) disposent d'un répertoire propre à chacune d'elle. La commande path est utilisée pour compléter la liste des chemins de recherche par ces répertoires.

On termine en lançant l'exécution du fichier menu.bat.

Pourquoi avoir crée un fichier de commandes supplémentaire alors que les deux commandes qu'il contient auraient pu être insérées dans le fichier autoexec.bat ? Parce que ce fichier va être logé à la racine du CD et non pas dans l'image disquette qu'il contient. Nous verrons plus loin l'avantage de cette disposition.

Le fichier menu.bat

@echo off
cls
set coul=˜[46;30m
set dflt=˜[0m
echo.
echo.
echo.
echo.
set ligv= %coul%
set ligv=%ligv% %dflt%
echo %ligv%
set lign= %coul% MENU
set lign=%lign% %dflt%
echo %lign%
echo %ligv%
echo %ligv%
set lign= %coul% 1 - Ghost
set lign=%lign% %dflt%
echo %lign%
echo %ligv%
set lign= %coul% 2 - Partition Magique
set lign=%lign% %dflt%
echo %lign%
echo %ligv%
set lign= %coul% 3 - Scandisk
set lign=%lign% %dflt%
echo %lign%
echo %ligv%
set lign= %coul% 4 - Contenu de ce CD
set lign=%lign% %dflt%
echo %lign%
echo %ligv%
echo %ligv%
echo %ligv%
set lign= %coul% Entrez le n° de l'option choisie ou une
set lign=%lign% commande DOS %dflt%
echo %lign%
echo %ligv%
set coul=
set dflt=
set ligv=
set lign=
echo.
echo.

On utilise la même méthode que dans l'exemple figurant dans le chapitre Gestion de menus avec des fichiers de commandes. On se sert de deux variables d'environnement, l'une pour les lignes contenant du texte (LIGN) l'autre pour celles qui n'en contiennent pas (LIGN), dont on affiche le contenu avec des commandes echo. Le contenu de LIGV est fixé une fois pour toutes tandis que celui de LIGN est modifié au fur et à mesure des besoins.

Pour faciliter l'écriture et la mise au point LIGN est systématiquement élaborée en deux temps. Même si les lignes d'un fichier de commandes peuvent contenir 255 caractères, un écran DOS n'en affiche que 80 à la fois. On y perd un peu sur le temps d'exécution mais on y gagne sur celui d'écriture et de mise au point du programme.

C'est exactement pour les mêmes raisons que l'on se sert également de deux variables d'environnement DFLT et COUL pour y loger les attributs de couleur. Ces attributs de couleur commencent par le caractère d'échappement qui normalement n'est pas affichable. Sous edit il est matérialisé à l'écran par une flèche suivie d'un crochet ouvrant. Ici la flèche a été replacée par le caractère ~ (tilde).

On termine en libérant la place prise par les variables d'environnement devenues inutiles.

Voici ce menu affiché à l'écran :

Menu CD

Le fichier 1.bat

@echo off
call ghost
menu

On appelle tout simplement l'application Ghost et au retour on réaffiche le menu. Aucun chemin n'a besoin d'être précisé puisqu'ils ont été prévus grâce à la commande path passée préalablement.

Le fichier 2.bat

@echo off
call pqmagic
menu

On fait exactement la même chose pour Partition Magiq.

Le fichier 3.bat

@echo off
%RAMD%:
call scandisk c: /custom
a:
menu

La troisième option du menu propose l'exécution de scandisk sur le disque C:. Le commutateur /custom indique à scandisk d'utiliser un fichier scandisk.ini pour contrôler son fonctionnement. Ce fichier contient toutes les options qu'il va utiliser. Dans notre cas nous avons modifié son contenu par défaut afin que l'examen minutieux de la surface du disque, s'il est demandé, se fasse de bout en bout sans intervention de l'utilisateur. Sandisk effectuera automatiquement toutes les réparations qu'il jugera nécessaires.

Il n'est pas possible de spécifier l'emplacement du fichier scandisk.ini. Il doit figurer dans le même répertoire que scandisk, ici la racine du lecteur virtuel. Il faut donc commencer par modifier le répertoire courant ce qui est le but de %RAMD%:.

Avant de réafficher le menu on revient à la racine de A:.

Le fichier 4.bat

@echo off
set JAU=˜[33m
set VER=˜[1;31m
set DFT=˜[0m
%ramd%:
cls

echo.
echo %VER%C O N T E N U   D E   C E   C D > contenu.txt
echo. >> contenu.txt
echo Répertoires de %CDROM%:%JAU% >>contenu.txt
dir %CDROM%: /-p /a:d /b >> contenu.txt
echo %DFT% >> contenu.txt
type contenu.txt | more
pause

set VER=
set JAU=
set DFT=
a:
menu

La quatrième option du menu propose l'affichage du contenu du CD ou tout au moins de la liste de ses répertoires principaux. Chaque application ayant été stockée dans un répertoire dédié, on a ainsi la liste des applications disponibles même si elles ne figurent pas dans le menu. Et c'est en couleurs, un peu à la manière de Linux.

Après avoir logé les attributs de couleur dont on va avoir besoin dans des variables d'environnement on change de répertoire courrant. Comme précédemment on passe sur le lecteur virtuel mais cette fois afin de pouvoir y créer un fichier. Ce fichier, contenu.txt va contenir tout ce qui sera affiché par la suite.

On commence par y écrire un entête de page en y redirigeant la sortie de trois commandes echo. Le doublement du signe de redirection (>>) force à écrire à la suite du fichier s'il existe déjà plutôt qu'à l'écraser. À la troisième commande echo on insère dans le texte la lettre d'unité du lecteur de CD.

La liste des répertoires est obtenue avec une commande dir dont la sortie est redirigée elle aussi vers le fichier contenu.txt, moyennant l'adjonction de quelques commutateurs.

Rappelons que dans l'autoexec.bat nous avons passé la commande set dircmd=\P \O \L \A afin de redéfinir les commutateurs par défaut de la commande dir. Ici un affichage page par page ( /P) interromprait l'écriture sur le fichier contenu.txt. On inhibe cette fonction avec /-P. Pour limiter la sortie de dir aux seuls répertoires on utilise /A:D et pour n'obtenir que leur nom, /B (abrégé). Cette modification des paramètres de fonctionnement de la commande dir est purement locale. Sans autre indication, toute exécution ultérieure de la commande dir s'effectuera avec les commutateurs contenus dans la variable d'environnement système DIRCMD.

Le fichier contenu.txt peut maintenant être affiché avec la commande type. L'utilisation du conduit et du filtre more permet un affichage page par page (cf. le chapitre concerné).

On termine en faisant le ménage dans le pool des variables d'environnement et en réaffichant le menu.

Voici ce que l'on obtient dans cet exemple.

Contenu CD

Inventaire des fichiers utilisés

Le tableau ci-dessous donne la liste des fichiers que doit contenir la disquette (ou son image) qui va servir à fabriquer la partie amorce du CD.

Fichier Origine
ansi.sys Windows 98
autoexec.bat disquette Windows 98 (modifié, voir ci-dessus )
command.com disquette Windows 98
config.sys
disquette Windows 98 (modifié, voir ci-dessus)
country.sys
disquette Windows 98
di1000dd.sys voir le chapitre USB
display.sys disquette Windows 98
ebd.cab voir le tableau suivant
extract.exe
disquette Windows 98
findramd.exe disquette Windows 98
himem.sys disquette Windows 98
io.sys disquette Windows 98
keyboard.sys disquette Windows 98
oakcdrom.sys disquette Windows 98
ramdrive.sys disquette Windows 98
setcdrom.bat voir ci-dessus
setramd.bat disquette Windows 98 (modifié, voir ci-dessus )
usbaspi.sys voir le chapitre USB
usbcd.sys voir le chapitre USB

Le fichier ebd.cab contient les fichiers du tableau qui suit.

Fichier Origine
attrib.exe disquette Windows 98 (ebd.cab)
chkdsk.exe disquette Windows 98 (ebd.cab)
debug.exe disquette Windows 98 (ebd.cab)
deltree.exe CD Windows 98
doskey.com Windows 98
edit.com disquette Windows 98 (ebd.cab)
ega.cpi disquette Windows 98
fdisk.exe disquette Windows 98
findcd.com commande non standard (voir ci-dessus)
format.com disquette Windows 98 (ebd.cab)
keyb.com
disquette Windows 98
label.exe
Windows 98
mem.exe Windows 98
mode.com disquette Windows 98
more.com Windows 98
mouse.com Windows 98
mouse.ini Windows 98
mscdex.exe disquette Windows 98 (ebd.cab)
scandisk.exe disquette Windows 98 (ebd.cab)
scandisk.ini disquette Windows 98 (ebd.cab)
scanreg.exe Windows 98
sys.com disquette Windows 98 (ebd.cab)
undelete.exe DOS 6
xcopy.exe Windows 98

En plus des répertoires dédiés aux applications, la racine du CD doit contenir les fichiers suivants.

Fichier Origine
setpath.bat à créer, voir ci-dessus
menu.bat à créer, voir ci-dessus
1.bat à créer, voir ci-dessus
2.bat
à créer, voir ci-dessus
3.bat à créer, voir ci-dessus
4.bat à créer, voir ci-dessus

Quelques commentaires

Comment choisir quels fichiers devront se trouver à un endroit plutôt qu'à un autre ?

La règle est simple. L'extraction des fichiers contenus dans ebd.cab au cours du déroulement d'autoexec.bat fixe la ligne de démarcation. Tout ce dont on a besoin avant doit être directement lu sur la disquette. Le reste peut être logé dans le fichier ebd.cab. Quant au contenu de ce dernier, il est ici en partie arbitraire. En dehors des fichiers invoqués on peut mettre ce que l'on veut dans la limite de la place disponible.

Alors pourquoi certains fichiers ont-ils été mis à la racine du CD plutôt que dans ebd.cab ?

La raison est simple : le respect d'une indépendance totale entre la partie amorce et le reste du CD. Pour adapter cet exemple à ses propres besoins il suffit de modifier les fichiers mis à la racine du CD. Ceci peut se faire à tout moment sans avoir à regraver un nouveau CD si l'on a pris la précaution de ne pas le finaliser (possibilité d'écriture ultérieure). La seule contrainte est la présence d'un fichier menu.bat, même vide car c'est cette présence qui permet à setcdrom.bat de déterminer la lettre d'unité affectée au CD.

Téléchargements

Tous les fichiers dont le contenu a été décrit dans ce chapitre ont été rassemblés dans deux fichiers comprimés auto-extractibles. Cette séparation est motivée par les raisons invoquées ci-dessus. Les consignes générales concernant les fichiers à télécharger figurent sur la page d'accueil.

Disquette (partie amorce du CD) Contenu du CD
L'ensemble des fichiers constituant l'image disquette nécessaire pour rendre le CD amorçable. L'ensemble des fichiers à graver à la racine du CD.
Archive auto-extractible
(912 kO)
Archive auto-extractible
(64 kO)
Image .img
(1 441 kO)

 

Toutes les pages du site Les autres sites

accueil
aide en ligne sur les commandes
créer un menu de configuration dans le fichier config.sys
disquettes d'amorce
fichiers config.sys et autoexec.bat
fichiers de commandes
gestion de menus avec des fichiers de commandes
indicateurs de re-direction et conduit
LPT1 et les imprimantes USB
mode console, DOS émulé ou natif
noms courts et noms longs
personnalisation du DOS
prise en compte des ports USB
répertoires et dossiers
un CD boîte à outils
variables d'environnement

Tentatives de bonnes réponses à des questions qui peuvent ne pas l'être

 

Les bricolages de Heffgé