Startseite Tipps DOS in Farbe Win 95/98



Farbe für das DOS-Fenster



Problem:
Sie wollen für Ihr DOS-Fenster eine andere Hintergrund- oder/und Schriftfarbe haben, z.B. so:

Abb.1



Lösung:
Der DOS-Befehl "prompt" erlaubt das Ändern der Eingabeaufforderung, des sog. Prompts. Es kann sowohl das Aussehen als auch der Inhalt verändert werden. Geben Sie im DOS-Fenster einmal den Befehl "prompt Hallo" ein (danach Entertaste). So einfach lässt sich der Inhalt der Eingabeaufforderung ändern. Wie man sein Aussehen beeinflussen kann und den gesamten Bildschirmhintergrund dazu wird weiter unten erklärt.

Um diese Möglichkeiten automatisch auf das DOS-Fenster anzuwenden, sind drei Schritte nötig.
  1. DOS-Monitortreiber ANSI.SYS laden
  2. Batchdatei mit Farbänderungsbefehl erstellen
  3. Aufruf des DOS-Fensters mit dieser Batchdatei verbinden

DOS-Monitortreiber ANSI.SYS laden
Ohne diesen Treiber können keine Farbveränderungen durchgeführt werden. Er muss daher in der Datei CONFIG.SYS geladen worden sein.
Öffnen Sie im Verzeichnis "C:\" die Datei CONFIG.SYS.
Schreiben Sie den Befehl "Device=C:\Windows\Command\Ansi.sys" in die unterste Zeile (siehe Abb.2) und speichern Sie die Datei, bevor Sie sie schließen!.

Abb.2



Batchdatei erstellen
Natürlich könnte man den Prompt-Befehl auch jedesmal einzeln von Hand im DOS-Fesnter eingeben, aber viel praktischer ist es ja, wenn der Befehl beim Öffnen des Fensters bereits automatisch ausgeführt worden ist. Das macht für Sie eine Stapelverarbeitungsdatei oder auch Batchdatei.
Erstellen Sie im Verzeichnis "C:\" eine Textdatei (Rechtsklick, "Neu") und geben Sie dieser bspw. den Namen DOSFARBE.BAT. In diese Datei schreiben Sie die folgenden beiden Zeilen (siehe auch Abb.3):

Für die Variable "X" müssen nun bestimmte Zahlen eingegeben werden, welche die verschiedenen Effekte und Farben hervorrufen. Es können hier bis zu drei Parameter hintereinander, getrennt durch Semikolon, angegeben werden. Der folgenden Tabelle können Sie entnehmen, welche Zahlen welche Bedeutung haben:

Zeichendarstellung Schriftfarbe Hintergrundfarbe
0 normal
1 intensiv

4 unterstrichen
5 blinkend
7 invertiert
8 unsichtbar

(Die Optionen 4-8 funktionieren
im DOS-Fenster nicht!)
30 schwarz
31 rot
32 grün
33 gelb
34 blau
35 magenta
36 cyan
37 weiß
40 schwarz
41 rot
42 grün
43 gelb
44 blau
45 magenta
46 cyan
47 weiß


In Abb.3 sind drei Parameter ("1", "33" und "44") angegeben.

Abb.3

Sie bedeuten "fett", "gelbe Schrift" und "blauer Hintergrund". In Kombination mit dem Befehl "cls" (das bedeutet "clear screen" und bewirkt, dass der Bildschirminhalt gelöscht und die Hintergrundfarbe auf das gesamte Fenster angewendet wird) liefert es das Ergebnis, das Sie in Abb.1 sehen konnten.



Aufruf des DOS-Fensters mit der Batchdatei verbinden
Nun wollen Sie ja nicht jedesmal, wenn Sie ein DOS-Fenster öffnen, erst die Batchdatei starten müssen. Also muss der Aufruf des DOS-Fensters direkt mit dem Aufruf der Batchdatei verbunden werden. Dazu müssen Sie in die "Eigenschaften" derjenigen Verknüpfung gehen, mit der Sie das DOS-Fenster aufrufen. Nehmen wir an, Sie öffnen das DOS-Fenster über "Start, Programme, MS-DOS-Einghabeaufforderung", dann gehen Sie jetzt im Explorer in das Verzeichnis "C:\Windows\Startmenü\Programme", klicken dort mit rechts auf die Verknüpfung namens "MS-DOS-Eingabeaufforderung" und wählen aus dem Kontextmenü den Punkt "Eigenschaften".
Hier wird nun auf der Karte "Programm" in der Zeile "Stapelverarbeitungsdatei" der Pfad zur Batchdatei angegeben (siehe Abb.4).

Abb4




Tipps

Syntax des Pompt-Befehls
Der Prompt-Befehl muss in folgender Syntax (= Schreibschema) eingegeben werden:

prompt $e[XmY
Die einzelnen Befehlsteile bedeuten dabei Folgendes:

prompt $e[ X m Y
DOS-Befehl, mit dem die Eingabeaufforderung (das "Prompt") in Inhalt und/oder Darstellung verändert werden kann. Sog. "Escape-Sequenz". Notwendig, um die Zusatzfunktionen des Treibers ANSI.SYS nutzen zu können. An dieser Stelle wird mittels bestimmter Zahlen die Schriftdarstellung festgelegt in 1. Darstellung, 2. Farbe und 3. Hintergrund.
Welche Zahlen das sind, war weiter oben aufgeführt.
Das "m" sagt dem System, dass die vorgenannten Variablen eine Bedeutung für die Bildschirmdarstellung haben sollen (für Änderungen der Tastaturbelegung stünde hier bspw. ein "p"). Das "m" steht ohne Leerzeichen zwischen den beiden Variablen "X" und "Y"! An diese Stelle schreibt man entweder die Worte, die das zukünftige Prompt bilden sollen, oder bestimmte Steuerzeichen.
Das "normale" Prompt, welches das aktuelle Verzeichnis und eine eckige Klammer beinhaltet, wird z.B. über die Steuerzeichen "$p" und "$g" aufgerufen.


Wer die "Variable X" benennt, muss zwangsweise auch die "Variable Y" benennen läßt man "Y" weg, ist auch das Prompt weg (Befehle können hinter dem "leeren Prompt" aber immer noch eingegeben werden)!
Im Gegensatz dazu kann die "Variable Y" auch alleine stehen. Geben Sie mal im DOS-Fenster den Befehl "prompt HALLO" ein. Nach Drücken der Enter-Taste sehen Sie das Ergebnis.
Folgende Codes (die alle mit dem Dollar-Symbol beginnen) können anstelle der "Variablen Y" verwendet werden (Groß- oder Kleinschreibung egal):

$B das Pipe-Symbol "|"
$D das Systemdatum
$E das ESC-Symbol. Dieses Zeichen kann im Prompt kann nicht dargestellt werden sondern dient der Einleitung einer Eingabe zur Änderung der Bildschirmattribute, Cursorposition oder der Tastencodes.
$G die schließende eckige Klammer ">"
$H das Zeichen links wird gelöscht
$L die öffnende eckige Klammer "<"
$N das aktuelle Laufwerk
$P der aktuelle Pfad bzw. das aktuelle Verzeichnis
$Q das Gleichheitszeichen "="
$T die Systemzeit
$V die verwendete MS-DOS-Version
$_ eine neue Zeile
$$ das Dollar-Zeichen "$"



Unterdrückung der Bildschirmausgabe (echo off)
Wer häufiger mit Stapelverabreitungsdateien (Batchdateien) unter DOS arbeitet, beginnt vielleicht gewohnheitsmäßig seine Batchdatei mit "@echo off". Durch diesen Befehl wird die Bildschirmausgabe der nachfolgenden Befehle unterdrückt; die Batchdatei läuft sozusagen unsichtbar ab. Diese Unterdrückung sollte man hier aber weglassen. Sie wäre auch völlig überflüssig, denn die Batchdatei wird beim Aufruf des DOS-Fensters ohnehin unsichtbar im Hintergrund ausgeführt.
Wichtiger ist jedoch, dass der Befehl "cls" bei eingeschaltetem "@echo off" nur noch zur Hälfte ausgeführt wird. Zwar wird der Bildschirminhalt gelöscht, aber die eingestellte Hintergrundfarbe wird nur noch auf das Prompt selbst angewendet und nicht mehr auf den gesamten Bildschirm übertragen (ähnlich, wie das in Abb.6 dargestellt ist). Man müsste dann von Hand ein erneutes "cls" eingeben, um dies zu erreichen.
Wer das "@echo off" unbedingt benötigt (bspw. weil er auch den normalen DOS-Modus verändern will und die Batchdatei daher in den Systemstart integrieren will) muss die Unterdrückung der Bildschirmausgabe durch "@echo on" zumindest für den "cls"-Befehl aufheben.



Schwarz und Weiß (und Gelb)
Um Schwarz und Weiß in unterschiedlichen Intensitäten darzustellen, werden in beiden Fällen Grautöne verwendet. Die Schriftfarbe im "normalen" DOS-Fenster ist also ein Hellgrau; erst wenn man "prompt $e[1m$p$g" eingibt (einziger Parameter der "Variablen X" ist also "1", "intensiv"), sieht man wirkliches Weiß (natürlich muss ANSI.SYS geladen sein, damit der Befehl auch eine Wirkung hat!).
Schwarz wird in der normalen Darstellung als schwarz, in der intensiven als dunkelgrau dargestellt. Gelb ist "normal" ein Orange und wird erst mit dem Parameter "intensiv" richtig gelb...

Nun wirkt sich der Parameter "1" nur auf die Schrift aus. Wie also einen wirklich weißen Hintergrund erzeugen?
Für den Hintergrund funktioniert überraschend der Parameter "5" in gleicher Weise. In reinem DOS führt dieser Parameter zu einem blinkenden Prompt im DOS-Fenster dagegen zu intensiver Hintergrundfarbe!
Der Befehl für schwarze Schrift auf weißem Hintergrund lautet also: "prompt $e[5;30;47m$p$g".



mehrfarbiges Prompt
Man kann innerhalb eines Prompt-Befehls mehrmals mit der Escape-Sequenz "$e[" Teile des Prompts bestimmen (siehe Abb.5).

Abb.5



Schrift- oder Bildschirmhintergrund
Wenn im Prompt-Befehl eine Hintergrundfarbe festgelegt wird, betrifft dies zunächst nur den Hintergrund hinter der Schrift (siehe Abb.6).

Abb.6

Erst der Befehl "cls" (für "clear screen") macht den gesamten Fensterhintergrund farbig (siehe Wechsel von Abb. 6 zu Abb.7).

Abb.7



DOS-Fenster und reines DOS
Es gibt einige Unterschiede im Einsatz des Prompt-Befehls entweder in einem DOS-Fenster oder in reinem DOS.

DOS-Fenster reines DOS
  • "automatische" Ausführung über Batchdatei, die mit Fenster-Aufruf verknüpft wird (s.o.) möglich.


  • Einige Parameter (4-8) funktionieren nicht (s.o.).


  • Soll nur die Schriftfarbe des Prompts (nicht der Hintergrund) verändert werden, so kann dies auch über einen "Set"-Befehl in der CONFIG.SYS gemacht werden (Syntax: "SET WINPMT=$e[XmY")
  • "automatische" Ausführung beim Systemstart über AUTOEXEC.BAT möglich.


  • Zumindest Parameter "4" funktioniert bei mir auch hier nicht.


  • Eine Prompt-Einstellung in der AUTOEXEC.BAT wirkt sich nicht auf die DOS-Fenster aus, wohl aber auf den MS-DOS-Modus (über "Start, Beenden").



Startseite Tipps DOS in Farbe