Spaß mit der Konsole

Immer weniger Computerbenutzer können überhaupt noch etwas mit dem Begriff Konsole anfangen. Kein Wunder. Denn die Zeiten da man noch Befehle am DOS-Promt eigegeben hat, um etwa das CD-Laufwerk einzubinden, sind ja auch schon gut 20 Jahre vorbei.

Trotzdem sind gerade im Service häufig die immer noch vorhandenen DOS-Programme sehr hilfreich und ermöglichen mächtige Systemeingriffe die mit der bunten, grafischen Windowsoberfläche kaum, oder nur sehr schwer, zu realiseren sind. Ich denke dabei insbesondere an Befehle wie sfc, chkdsk oder auch diskpart.

Als eine kleine Reminiszenz an das was alles so geht, auf der Konsole, haben wir einen Matrix „Screensaver“ aufgesetzt. Einfach so, weil es Spaß macht. Wer also vor seinen Kumpels mal so richtig „an den Knöppen“ drehen will, für den ist das ja vielleicht etwas.

Ein wenig „Vorarbeit“ braucht es natürlich und damit Ihr schon mal wisst was Euch erwartet, hier erst mal einen screenshot. Natürlich laufen die Zahlen-Kolonnen je nach Computerleistung rasant durchs Bild. Wer will kann sich das Ganze auf youtube ansehen indem Sie auf diesen Satz oder das nächste Bild klicken.

Möglicherweise erinnert sich noch der Eine oder Andere daran als man Windows vom DOS-Prompt aus startete. Die Reihenfolge war etwa so:
– Computer einschalten.
– Schwarzer Bildschirm mit DOS-Promt (C:\_) erscheint.
– Ein paar Befehle um die Umgebung bereit zu stellen (etwa für Tastaturlayout oder CD Laufwerk):
– Schließlich „Win“ eingegeben, mit enter bestätigen und Windows 3.1 wurde gestartet. Jetzt erst war man in der grafischen Oberfläche von Windows.

Wollte man eine Diskette formatieren, gab man am DOS Promt den Befehl „Format a:“ ein. Was aus dieser Zeit übrig geblieben ist, ist die Konsole. Wer schon einmal im Windows System32-Verzeichnis herumgestöbert hat, findet dort auch noch eine ganze Reihe dieser alten „Befehle“. Es sind kleine Programme.

Wie erreiche ich die Konsole?

Windows 7 – Auf den Start-Button klicken, in die Suchzeile „cmd“ eigeben, das Suchergebnis cmd.exe mit einem Rechtsklick „Als Administrator“ starten.

Windows 8, 8.1, 10 – Windows-Taste festhalten und den Buchstaben X drücken, den Menu-Punkt >Windows PowerShell (Administrator)< anklicken, anschließend die Ausführung bestätigen.

Über die Konsole hat man also die Möglichkeit systemnah mit einzelnen Befehlen auf das System einzuwirken. Allerdings kann man so immer nur einen „Befehl“, gegebenenfalls noch mit ein paar Parametern, eingeben. Dann drückt man [enter] und der Befehl wird ausgeführt.

Für die komplexe Ausführung mehrerer Befehle, hintereinader weg, bedient man sich einer Batchdatei. Eine Batchdatei ist eine Stapeldatei (engl. batch=Stapel), die in einem Stapel einzelne Befehle hintereinander auflistet und beim Start der Batchdatei hintereinader weg ausführt. Man braucht also nur noch einen Befehl und kann so einen ganzen Stapel von Befehlen abarbeiten.

Wie wird nun eine solche Datei erstellt? Ganz einfach. Nehmt Euch das einfachste Text-Programm das uns Windows zur Verfügung steht: den Editor. Dieser findet sich im Windows Zubehör. Hier kann man nun wie auf einem Blatt Papier alle einzelnen Befehle hinter einander weg aufschreiben. Jeder Befehl bekommt eine Zeile und der Zeilenumbruch, durch drücken der [enter]-Taste, entspricht später auch dem Befehl für das ausführen dieser einzelnen Befehlszeile.

Was die einzelnen Befehle bedeuten soll noch nicht interessieren. Dazu gleich mehr.

Um nun aus dieser Liste eine Batchdatei zu machen wählt man Datei – Speichern unter.
Beispiel: Eine Datei namens „uhr.bat“ wird auf dem Desktop gespeichert. Wichtig ist die Endung. Wird Windows später durch Doppelklick auf diese Datei, die Ausführung befohlen, erkennt Windows an der Endung das es sich um eine Stapeldatei handelt und arbeitet diese genauso, Zeile für Zeile, ab.

Es folgt der voll kommentierte Befehlstext. Die einzelnen Befehle sind dabei fett gekennzeichnet. Am Ende gibt es den gesamten Befehlsstapel noch einmal, ohne meine Kommentare (in schwarz). So könnt Ihr Euch den Block per markieren / Strg-C / Strg-V in ein leeres editor-Fenster kopieren, als Batchdatei abspeichern und ausführen.

Vorab noch ein paar kurze Hinweise:

1. Ihr solltet die Kommentare wenigstens quer lesen. Er enthält einige wichtige Erläuterungen. Unter anderem auch was NICHT geht.

2. Die Batchdatei enthält Befehlszeilen zur Ausführung von Musik. Ihr müsst natürlich auch den/die entsprechenden Titel bereitstellen. Zweckmäßigerweise im selben Verzeichnis wie die Batchdatei. Die verwendeten Titel wurden freundlicherweise bei Panda Beats Music als lizenzfreie Version bezogen. Am Ende des Artikels findet Ihr die credits zu den verwendeten Titeln.

3. Eine Batchdatei ist nicht Fehlertollerant. Bedeutet: falsch geschriebene Befehle, die sich so nicht ausführen lassen, werden ohne weiteren Halt oder eine Anmerkung übergangen. Schon zwei hintereinander stehende Leerzeichen bewirken das der Rest des Befehls nicht mehr ausgeführt wird. Genauso Befehle mit falschen Parametern. Bei Fehlern die den Stapel crashen lassen, also den Rechner abschießen: bei Win 7 mit Strg-Alt-Entf den Taskmanager aufrufen und den gecrashten Stapel (Task) beenden. Ab Windows 8 mit Strg-shift-Esc. Wenn das nicht mehr hilft …, ja dann hilft nur noch den Ping-Dienst beenden oder … oder … oder ein Not-Aus.

Zum weiteren Verständnis habe ich an passender Stelle Verweise als Links eingefügt.

+++ STOP +++ STOP +++ STOP +++ STOP +++ STOP +++ STOP +++ STOP +++

Der nachfolgend aufgeführte Programmcode wird veröffentlicht wie er ist. Ich übernehme keinerlei Haftung für die ordnungsgemäße Ausführung aller Funktionen auf anderen Rechnern als dem des Autors. Computer sind auch nur Menschen und irren geht immer. Insbesondere wenn der Programmcode durch Euch verändert werden kann.

@echo off
Diese Programmzeile bewirkt zweierlei durch das @ Zeichen wird verhindert das die Zeile als Befehlszeile ausgeführt wird, gleichzeitig wird durch den befehl „echo off“ von jetzt an verhindert das die einzelnen Befehlszeile auf dem Bildschirm als Nachricht ausgegeben werden. Der Befehl endet entweder mit dem Ende der Batchdatei oder mit der Eingabe des Befehls „echo on.

color 0a
Mit dem Befehl legt man Hintergrund- und Schriftfarbe fest. 0 = Hintergrund schwarz und a = Schriftfarbe grün.

Link zu Farben für Konsolen Hintergrund und Schrift
https://de.wikibooks.org/wiki/Batch-Programmierung:_Batch-Befehle#COLOR

mode con cols=260 lines=82
Da das Konsolenfenster sich nicht so ohne weiteres per Fensteroption auf den ganzen Bildschirm erweitern lässt, gebt Ihr mit diesem Befehl an, dass das Fenster 260 Spalten breit und 82 Zeilen hoch sein soll. Die Parameter sind unter anderem auch abhängig von der jeweiligen Schriftart. Hier muss ein wenig herumprobiert werden bis die Werte passen.

goto anfang
Ein wesentliches Merkmal von Programmen ist es das man Befehle in einzelnen Gruppen zusammenfassen kann zu denen dann an bestimmten Punkten gesprungen werden kann. Mit dieser Anweisung goto wird zum Anfang des Programmblocks „anfang“ gesprungen.

Soweit der erste Block. Um im Programm die Übersicht zu behalten sollte man zwischen den einzelnen Programmblöcken ruhig eine Leerzeile einfügen. Sie bedeutet gar nichts, erhöht aber die Übersichtlichkeit. Besonders wenn man mal einen Fehler suchen muss.

Im zweiten Block wird nun die Umgebung für die Matrix gesetzt und ausgeführt.

:anfang
Ein einfacher Doppelpunkt vor einem Bezeichner markiert eine Sprungmarke, zu der von einer beliebigen anderen Stelle im Programm aus hingesprungen werden kann. In der Umkehr wird alles was hinter einem Doppelpunkt steht als Bezeichner einer Sprungmarke interpretiert.

::start wmplayer „%cd%\titelliste.m3u?wmpskin=revert“
start wmplayer „%cd%\alan-walker-fade-ncs-release.mp3?wmpskin=revert“

Der doppelte Doppelpunkt vor der ersten Zeile markiert diese als Kommentartext. Sie wird also nicht ausgeführt. Erst wenn Ihr die Doppelpunkte wegnehmt wird sie als Befehlszeile erkannt und ausgeführt.

Zur Untermalung der Matrix sollen ein oder mehrere Musiktitel abgespielt werden. Als Windows Boardwerkzeug steht uns der Windows Mediaplayer zur Verfügung, der durch den Befehlsteil start wmplayer aufgerufen wird. Als zusätzliche Parameter (alle zusammen in Hochkomma gesetzt) übergebe ich ihm
– mit %cd% den Wert der Systemvariable für das aktuelle Verzeichnis, das in dem sich auch die Batchdatei befindet,
– wahlweise mit \titelliste.m3u eine Playlist oder mit \alan-walker-fade-ncs-release.mp3 einen einzelnen Titel. Dazu müssen sich in unserem Fall Titel und/oder Titelliste im selben Verzeichnis befinden wie die Batchdatei. Sind diese nicht dort, gibt der Mediaplayer eine Fehlermeldung aus. Eine Titelliste erstellt ihr genau so wie eine Batchdatei. Öffnet den Editor, schreibt die einzelnen Titel untereinander in einer Liste auf und speichert die Datei mit der Endung m3u in Euer Batchdatei Verzeichnis
– und schließlich mit ?wmpskin=revert das Aussehen des Mediaplayers im komprimierten Modus der sich ausblendet wenn man den Cursor von ihm herunterführt. Bevor alles losgeht habe ich den Mediaplyer auch noch in den Modus Endloswiederholung geschaltet. Damit läuft der gewählte Titel / die gewählte Playlist endlos. Deshalb auch die doppelten Doppelpunkte vor einer der beiden Zeilen. Weil es sonst zu unerwünschten Effekten kommen kann, wenn ein einzelner Musiktitel und eine Playlist nahezu zeitgleich ausgeführt werden sollen. Zumal der Einzeltitel auch noch mal in der Playlist enthalten ist.

Link zu Parametern für Windows Mediaplayer Start
https://docs.microsoft.com/en-us/windows/desktop/wmp/command-line-parameters

start perfmon /res
Just for Fun oder weil man es kann: Das Windows Anzeigetool für die Computerprformance wird gestartet. Wahlweise können da Werte und Grafiken zu Prozessor, Arbeitsspeicher etc. angezeigt werden. Je nach gewähltem Parameter, hier zum Beispiel mit /res für die Ressourcenansicht.

Link zu Parametern für Windows Ressourcenanzeige
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/perfmon

title The Matrix – Interpretation by OpusCorvi [c]2017
cls
goto matrix

Die letzten drei Zeilen dieses Blocks im Schnelldurchlauf.
– Mit title weise ich dem Konsolenfenster einen Titel zu,
– mit cls lösche ich den gesamten Inhalt des Fensters,
– und goto kennt Ihr ja schon, ich springe zum nächsten Block mit der Eingangssprungmarke matrix.

Der letzte Block. Die Matrix.

:matrix
Kennen wir schon. Die Sprungmarke matrix.

echo %random%%random% %random%%random%%random% %random%%random%%random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random%
Eine der Möglichkeiten die @echo off Anweisung auszuschalten ist es einer einzelnen Befehlszeile den Befehl echo voran zu stellen. Damit wird dann alles was dahinter steht im Konsolenfenster als Befehl ausgeführt und angezeigt. Das Prozentzeichen hatten wir oben schon. Es bezeichnet eine Variable. In diesem Fall die variable random. Sie liefert mir eine Zufallszahl zwischen 0 und einschließlich 32767. Was hier aussieht wie Zeilenumbrüche sind keine. Der Befehl erstreckt sich über eine einzige Zeile, wird hier aber am Bildschrimrand der Sichtbarkeit wegen umgebrochen. Das eigentliche Befehlsende steht erst nach dem letzten random Aufruf. Um den Bildschirm komplett zu füllen werden etliche Zahlen in einer Reihe benötigt. Deswegen die Vielzahl der Aufrufe. Ihr müsst da einfach ein wenig experimentieren. Wann der Bildschirm voll ist richtet sich unter anderem auch nach der verwendeten Schriftart. Die gelegentlich eingefügten Leerzeichen werden auch bei der Ausgabe als Leerzeichen dargestellt. Zusammen mit den unterschiedlich langen Zufallszahlen ergibt sich dadurch ein unregelmäßigeres Bild.

ping 1.1.1.1 -n 0 -w 10>nul
goto matrix

Die beiden letzten Befehle stehen im Zusammenhang, deshalb gemeinsam erklärt. Goto matrix lässt die Ausführung der Batchdatei wieder zur Marke matrix springen. Der Stapel dreht sich ab hier also im Kreis und produziert eine Zeile Zufallszahlen nach der anderen. In einer Konsole werden die einzelnen Befehle in Prozessorgeschwindigkeit ausgeführt. Bedeutet, die Zahlenkolonnen schießen über den Bildschirm das man kaum etwas sinnvolles erkennen kann. Um hier also ein wenig die Luft raus zu nehmen brauchen wir ein kleines Päuschen zwischen jeder echo Ausführung. Nun gibt es zwar den Konsolenbefehl pause, aber dieser hält das Programm an und setzt es erst wieder fort wenn der Benutzer die Enter-Taste drückt. Nicht so cool. Mit der Ping Anweisung mache ich jetzt nichts weiter, als den Rechner für eine gewisse Zeit mit dem pingen der bezeichneten IP-Adresse zu beschäftigen. Und schon wird’s gemütlicher.

Link zu Parametern für den Ping-Befehl
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ping

So das wars. Kurze Nachbetrachtung in zwei Hinweisen:

1. Wenn ihr mit den Befehlen „rumspielt“ macht Euch vorher klar was passieren könnte. Wie gesagt Batchdateien sind nicht Fehlertolerant und ihr könnt Euch mit unbedachten Parameteranweisungen auch gerne mal aus Eurem Rechner aussperren. Macht Euch klar was eine IP-Adresse ist und was es bedeutet eine IP-Adresse anzupingen.
2. Bevor Ihr Euer Meisterwerk präsentiert solltet Ihr es ausrichten. Also das Konsolen- und die Programmfenster. Es gibt keinen Konsolenbefehl mit dem man das Fenster auf Position 0,0 ausrichten kann. Dafür gibt es Programme die man mit einbinden kann, aber ob das nun wirklich nötig ist bleibt Euch überlassen.

Im Anhang folgen jetzt:
Anhang 1 – der komplette unkommentierte Quelltext.
Abhang 2 – das Download-Archiv ist eine RAR-Datei. Sie enthält einen Textdatei „Bitte unbedingt lesen.txt“ folgenden Inhalts.
Anhang 3 – ein paar nützliche Links, Credits und ein Downloadlink für ein Archiv mit Batch-, Musik- und Hinweisdatei.

Über Euer Feedback würde ich mich freuen.
Ansonsten dann. Have Fun.

Anhang 1: Vollständig, unkommentierter Quelltext für matrix.bat

@echo off
title The Matrix
color 0a
mode con cols=260 lines=82
goto anfang

:anfang
::start wmplayer „%cd%\titelliste.m3u?wmpskin=revert“
start wmplayer „%cd%\alan-walker-fade-ncs-release.mp3?wmpskin=revert“
start perfmon /res
title The Matrix – Interpretation by OpusCorvi [c]2017
cls
goto matrix

:matrix
echo %random%%random% %random%%random%%random% %random%%random%%random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random% %random%%random% %random%%random% %random%%random%%random% %random%%random%%random%
ping 1.1.1.1 -n 0 -w 10>nul
goto matrix

Anhang 2 – Dokumentation des vollständigen Textes der „Bitte unbedingt lesen.txt“ Datei

Matrix Interpretation in der Konsole
——————————————–
veröffentlicht auf opuscorvi.com —-
Das „Programm“ wird geliefert „as it is“. Beachten Sie die Hinweise
auf der Webseite. Die Nutzung erfolgt auf eigene Gefahr, was auch von
Ihnen vorgenommene Änderungen einschließt.

+++++ Jegliche Haftung ist ausgeschlossen. +++++

Wenn Sie diese Datei lesen haben Sie das Archiv bereits heruntergeladen
und entpackt.

Wie im Beitrag auf OpusCorvi.com schon erwähnt, hier ein paar Hinweise
damit das ganze nach unserem Ermessen problemlos benutzt werden kann.
Batch-Dateien haben ihre eigenen Regeln die zu beachten sind.

  1. Entpacken Sie die Batch-datei und die Musik-datei in des selbe Verzeichnis.
  2. Starten Sie die Batch-Datei im Normalfall durch einen Doppelklick.
  3. Richten Sie das Matrix-Konsolenfenster am Monitorrand oben-links aus.
  4. Erweitern Sie alle Perfomance-Abschnitte, passen Sie die Größe des
    Fensters an und richten Sie das Fenster innerhalb der Matrix aus.
    Sie können es auch ausblenden und durch einen Klick auf das Symbol in
    der Taskleiste wieder hervorholen.
  5. Der Windows Mediaplayer ist unter Umständen zunächst unsichtbar.
    Klicken Sie einfach auf das Symbol in der Taskleiste und er kommt
    zum Vorschein. Setzen Sie Ihn auf Anfang, positionieren Sie ihn
    in der Matrix und führen Sie den Cursor aus dem Mediaplayer heraus.
    Der Player wird dann in der Matrix wieder „unsichtbar“.

Zum Beenden der Matrix müssen Sie alle drei Programme einzen schließen.
Also das Konsolenfenster, den Mediplayer und die Performanceanzeige.

So. Spielen Sie ein wenig damit herum und jetzt holen Sie Ihre Freunde
und verblüffen Sie sie.

Have fun and see you in the matrix 😉

Anhang 3: Nützliche Links, Credits und Download

Konsolenbefehle allgemein
https://de.wikibooks.org/wiki/Batch-Programmierung:_Batch-Befehl

CREDITS
Link zur Playlist der den Titel IntergalacticWalk enthält.

DOWNLOAD
Alle Dateien sind in ein RAR-Archiv gepackt. Es sollte sich per rechtsklick im Windows Explorer problemlos entpacken lassen.

Dateiname: matrix v2.rar
Dateigröße: 3,58 MB (3.755.585 Bytes)
Dateigröße auf dem Datenträger: 3,58 MB (3.756.032 Bytes)

Diese Daten können / sollten vor dem entpacken per Rechtsklick auf die Datei, Eigenschaften überprüft werden. Gibt es Abweichungen könnte die Datei manipuliert worden sein. Entpacken Sie das Archiv dann bitte nicht. Bitte geben Sie mir via Kontakt Bescheid und ich helfe Ihnen weiter.

Download hier klicken