:: Création du menu de Boot ::

Pour créer notre menu de botte nous emploierons CD Shell 2.1.06. Si vous choisissez d'employer la vielle methode diskemu.cmd, vous êtes plus que la bienvenue, Cependant, cette méthode ne sera pas discutée ici. Il y a beaucoup d'avantages à employer CD Shell. Liste d'annuaire dedans CD Shell est plus organisé et nettoie regarder. Vous pouvez employer des couleurs. Vous pouvez regarder le fichier .txt sans devoir les ouvrir dans le DOS laid de bleu "éditent" l'écran. Vous pouvez même corriger vos menus sans devoir brûler un Cd ou charger une ISO dans le PC virtuel ou le VMware.

Vous pouvez trouver mes fichiers réels dans la partie "télécharger". Jetez un coup d'oeil dans mon fichier cdshell.ini pour essayer d'obtenir une compréhension de la façon dont les script de CD Shell fonctionnent. Si vous copiez ce dossier dans votre dossier BOOT et lancez le programme de mise au point, vous pouvez voir exactement comment mon menu de Boot fonctionne. Ne vous inquiétez pas, aucune des options n'exécutera réellement aucun programme. Il vous donne juste une idée de ce que mon dossier .

Voici un exemple d'un menu de boot possible créé avec CD Shell:

Si vous suiviez "Avant de commencer" le guide commencé vous devriez avoir un dossier appelée BOOT dans le votre dossier AIO-DVD Le fichier cdshell.ini est ce qui contiendra le code pour notre menu. Ouvrez ce fichier dans le Bloc-Notes ou dans Wordpad ou celui que vous voulez.


A propos de CD Shell Scripting :

CD Shell emploie une langue scripting étendue pour créer le menu de botte, tout comme le php d'écriture ou les manuscrits de Java. Il y a beaucoup plus qu'elle peut faire que je serai bâche de ce guide, mais je vous fournirai l'information pour obtenir votre menu de botte haut et fonctionnement.

Pour plus d'information et d'aide sur CD Shell consultez le site suivant: http://www.cs.uic.edu/~mter/cdshell/buildcd.html

Plus de documentation est disponible sur ce site dessous Information -> Documentation.


Création de Sections :

Des sections sont employées pour maintenir le code propre et organisées, et permettent des commandes de sauter à certaines sections pour exécuter le code spécifique. Pour créer une section dactylographiez le nom de la section suivie d'un collon. J'aime appeler ma toute première section "menu:". Maintenez dans l'esprit que le code est exécuté exactement dans l'ordre qu'il est énuméré. Assurez-vous tellement toujours qu'après que les sections de logiciel d'exploitation pour créer une section principale pour cet OS vous voient ce que veux dire je quand vous obtenez aux sections de logiciel d'exploitation. Exemples:

Exemples de sections:

boot:
xp_pro:
moreoptions


Affichage du texte :

cls
print "1) Windows XP Professional SP1 Corporate \n"

La commande cls dégagera d'abord l'écran entier avant d'afficher le texte. TOUT LE texte imprimé doit être enfermé dans les citations. Des commandes print multiples peuvent être employées sur une ligne emploient près un point-virgule (;) après chaque commande. La commande de \n crée un retour de ligne. Si nous voulions un espace entre nos options de menu nous emploierions juste le \n\n après la première commande print ou avant la prochaine commande print.

Pour centrer, aligner à gauche, ou groite le texte, utiliser les commandes c, l, et r.

print c "This is an example of centered text"

Si vous voulez juste un commentaire, employez le caractère #.

# This is a comment. It will not print anything on the screen.


Utilisateur d'entrer :

créons une partie appelée MainKey:. Cette section devrait être placée sous la partie menu: Voici les deux premières lignes de ma partie MainKey:

MainKey:
getkey 20 boot 0x80
if $lastKey == key[1]; then goto XP_Pro

Les premières utilisations de ligne la commande de getkey de stocker la clef que l'utilisateur serre. Les "20" est un arrêt. Il signifie que si aucune clef n'est serrée dans 20 secondes, la commande la rejetez les boot 0x80 fonctionnera. rejetez les boot 0x80 le premier Disque dur sur le système. Si aucun OS n'est installé pourtant alors rien ne rejettera naturellement. Vous ne devez pas inclure un arrêt. Si vous pas le menu restera sur l'écran jusqu'à ce que vous fassiez quelque chose.

Les deuxièmes utilisations de ligne de commande if de vérifier les keypress. Elle indique que si $$lastkey qu'a été entré était "1", alors il goto la partie XP_Pro.


lancement des fichier et de saut dans les sections :

chain /PRO1.DAT
Lance le fichier de PRO1.dat. l'anti-slash "/" indiquent à CD Shell que PRO1.dat est dans la racine du cd.

memdisk /98SE.IMA
Lance l'image de notre disque de Boot de Windows 98 SE pour commencer l'installation de Windows 98 SE. La commande memdisk doit être utilisée pour des fichiers IMA et IMG.

goto XP_Pro:
Saute vers "XP_Pro:" sectionnez et exécutez le code là.

type /example.txt
Affiche le contenu de exemple.txt à l'écran. Il n'ouvre pas réellement le fichier, il affiche justes le contenu à l'écran.


Sections du Système d'exploitation :

En utilisant "User Input:" les directions comme exemple, créons maintenant une section appelée XP_Pro:. Chaque section d'OS doit également être suivie d'elle doit posséder la partie principale. Cette partie créera un nouveau menu avec nos options de XP. Voici mon code de partie de "XP_Pro". Notez que le caractère de "Ä" quand utilisé dans une ligne imprimera une ligne "continuous", au lieu d'employer des traits d'union qui produit quelque chose comme "-----".

XP_Pro:
cls
print r "\n\cXXPress \c0BF1 \cXXfor Help \n"
print c "\n\cXXMicrosoft Windows XP Professional SP1 Corporate \n"
print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"
print "1) Regular \n"
print "2) Unattended \n"
print "3) OEMPreinstall \n"
print c "\n\n"
print "Press any key to return to main menu... \n"

XP_Pro_Key:
getkey 20 goto menu
if $lastKey == key[1]; then chain /PRO1.DAT
if $lastKey == key[2]; then chain /PRO2.DAT
if $lastKey == key[3]; then chain /PRO3.DAT
if $lastKey == key[F1]; then goto Help
goto menu

Voici ce qui se produit. L'ordinateur imprime ce qui est dans le XP_Pro: la section et continue alors dessus à la prochaine section (XP_Pro_Key:), ce qui emploie la commande de getkey. Ainsi l'ordinateur attend une pression principale. Si la touche "1" est enfoncée, alors l'ordinateur procédera alors courir le fichier PRO1.dat qui devrait commencer le processus d'installation de XP. Si aucune touches n'est enfoncée pendant les 20 secondes, CD Shell retourne au menu principal.

SI vous voulez seulement une option pour XP et n'avez pas besoin du menu supplémentaire, sautez alors le "XP_Pro:" et "XP_Pro_Key:" les sections et dans Utilisateur d'entrer une partie de ce guide

if $lastKey == key[1]; then goto XP_Pro

peut être changé en

if $lastKey == key[1]; then chain /PRO1.DAT


Plus d'Options

J'emploie un MoreOptions: la partie dans mon menu pour des choses aiment la Partition Magic 8.0, Ghost de Norton, les numéros de série, etc... Vous devrez créer les entrées appropriées dans votre "menu:" et "MainKey:" sections de votre fichier "cdshell.ini".

MoreOptions:
cls
print r "\n\cXXPress \c0BF1 \cXXfor Help \n"
print c "\n\cXXMore Options \n"
print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"
print "1) Read/Copy Files From NTFS Volumes To FAT32/16 Drives \n"
print "2) Partition Magic 8.0 \n"
print "3) Norton Ghost \n"
print "4) View Serial Numbers \n"
print c "\n\n"
print "Press any key to return to main menu... \n"

MoreOptions_Key:
getkey 20 goto menu
if $lastKey == key[1]; then memdisk NTFS.IMA
if $lastKey == key[2]; then memdisk PM8.IMG
if $lastKey == key[3]; then memdisk GHOST.IMA
if $lastKey == key[4]; then goto SerialNumbers
goto menu


Réglage des couleurs - OPTIONNEL :

Je m'inquiéterais de placer des couleurs APRÈS QUE vous ayez tout d'autre fonctionnement et tapoterais vers le bas.

Employez les commandes suivantes à commencer très de votre dossier à placer des couleurs pour le menu entier de boot.

menu:
set textColor= color[grey on black]
set boldColor= color[cyan on black]

Les noms valides de couleur sont: noir, bleu, vert, cyan, rouge, magenta, brun, gris, brightgrey, brightblue, brightgreen, brightcyan, brightred, brightmagenta, jaune, et blanc.

Pour accentuer les parties spécifiques de texte avec une couleur différente emploient les commandes de \XX et de \cxx. le \XX a indiqué le texte suivant est la couleur bold, et le \cxx indique que le texte suivant est couleur normale. Si vous voulez employer plus de couleurs sans devoir placer la couleur chaque fois, alors XX sera remplacé par deux nombres, le premier indiquant la couleur de fond et la seconde indiquant la couleur des textes. Ainsi:

print "\cXXThis text is boldcolor. \cxxThis text is normal color."

Les copies "ce texte est boldcolor" dans cyan sur le noir et alors les copies "ce texte est couleur normale." Dans le gris sur le noir.

Code Couleur Code Couleur
0 black 8 grey
1 blue 9 brightblue
2 green A brightgreen
3 cyan B brightcyan
4 red C brightred
5 magenta D brightmagenta
6 brown E yellow
7 brightgrey F white

Ainsi si vous regardez le screenshot au début le guide et le code suivant vous pouvez voir ce qui se produit :

print l "\cXXPress \c0BF1 \cXXfor Help"; print r "\c0Bckite@portraitofakite.com \n"

Le mot "pression" est imprimé dans cyan sur un fond noir, alors "F1" est imprimé dans cyan lumineux sur un fond noir. "pour l'aide" est imprimé dans le cyan encore, et alors mon E-mail est imprimé encore dans la couleur cyan lumineuse.


La Fin :

À la FIN de votre endroit juste de fichier cdshell.ini le code "end".

end

C'est tout. La commande end vous apportera à un message de sollicitation de commande CD Shell. Elle est tout comme a un message de sollicitation de commande de DOS mais des appuis plus de commandes et un affichage plus gentil de liste d'annuaire. Dactylographiez "HELP" au message de sollicitation pour voir tout ce que vous pouvez faire.


Débuggeur :

Un des plus grandes avantage de cdshell est le débugage. Pour corriger le double déclic juste le dossier cdshw.com dans la dossier de BOOT. Ceci lance une simulation qui ressemblera exactement au processus de boot . Ne vous inquiétez pas de lancer une installation accidentel de Windows XP ou de quelque chose comme cela, parce que le programme de mise au point vous indiquera que la "chain" ou "boot" ou quoi de plus commande n'est pas pris en charge par le procédure de mise en point. Pour sortir le programme de mise au point tapé exit au message de ligne de commande. Si vous ne pouvez pas accéder a la ligne de commande appuié juste "Ctrl+Alt+Suppr" hors du programme de mise au point.


Extra Fun

L'endroit suivant du code I comme le code commençant très dans mon fichier cdshell.ini. Il fait quelques choses:

D'abord, il commence avec une partie boot: . Cette partie affiche d'abord "Press enter to boot from DVD...". Si entrez n'est pas enfoncé en 5 secondes, elle rejette quelqu'Os soit chargé sur le premier Disque dur et saute le menu.

Les deux prochaines partie sont des fonctions faites sur commande que j'ai écrites à la copie hors de la date du jour et de l'heure. Un exemple de ceci peut être vu dans le screenshot au dessus.

boot:
cls
print "\n"
print "Press Enter to boot from DVD... \n"
getkey 5 boot 0x80
if $lastKey == key[enter]; then goto time
# When no key found...
goto boot

# Function to display time of day
time:
set hour = $timeHour
set ampm = "am"
if $timeHour > 12; then set hour = $timeHour - 12
if $timeHour > 12; then set ampm = "pm"
set time = "$hour:$timeMinute$ampm"

# Function to display date
date:
set month = "n/a"
if $dateMonth == 1; then set month = "Jan."
if $dateMonth == 2; then set month = "Feb."
if $dateMonth == 3; then set month = "Mar."
if $dateMonth == 4; then set month = "Apr."
if $dateMonth == 5; then set month = "May."
if $dateMonth == 6; then set month = "Jun."
if $dateMonth == 7; then set month = "Jul."
if $dateMonth == 8; then set month = "Aug."
if $dateMonth == 9; then set month = "Sep."
if $dateMonth == 10; then set month = "Oct."
if $dateMonth == 11; then set month = "Nov."
if $dateMonth == 12; then set month = "Dec."
set date = "$month$dateDay,$dateYear"

Pour afficher la ligne avec de l'heure et la date, j'emploie ce morceau de code:

print c "\n\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ<\c0B$time $date\cXX>ÄÄ \n\n"

Le caractère "Ä" quand utilisé avec d'autres affichera une ligne continue au lieu de à tiret quand en utilisant des traits d'union (-----).