Batch-Skript - Eingabe/Ausgabe

Hallo da draußen, zukünftige Programmierer! Heute tauchen wir ein in die faszinierende Welt der Batch-Skripte und konzentrieren uns auf Eingabe- und Ausgaboperationen. Als dein freundlicher Nachbar-Computerlehrer bin ich aufgeregt, dich auf dieser Reise zu führen. Keine Sorge, wenn du noch nie eine Zeile Code geschrieben hast – wir beginnen bei den Grundlagen und arbeiten uns hinauf. Also, hole dir ein Getränk deiner Wahl und los geht's!

Batch Script - Input / Output

Eingabe und Ausgabe in Batch-Skripten verstehen

Bevor wir ins Detail gehen, lassen wir uns über das Verständnis von Eingabe und Ausgabe im Kontext von Batch-Skripten unterhalten.

  • Eingabe ist die Information, die in dein Skript geht. Es ist so, als ob du deinem Programm Daten zuführst.
  • Ausgabe ist das, was dein Skript produziert oder anzeigt. Es ist das Ergebnis der Arbeit deines Skripts.

Denke daran wie in einer Küche: Eingabe sind die Zutaten, die du verwendest, und Ausgabe ist das leckere Gericht, das du herstellst!

Grundlegende Eingabe: Der SET /P Befehl

Lassen wir mit der am häufigsten verwendeten Methode zur Eingabe in Batch-Skripten beginnen: der SET /P Befehl. Dieser Befehl ermöglicht es uns, den Benutzer um Eingabe zu bitten und sie in einer Variablen zu speichern.

@echo off
SET /P name=Wie ist dein Name?
echo Hallo, %name%! Willkommen in der Welt der Batch-Skripte!
pause

In diesem Beispiel:

  1. @echo off verhindert, dass die Befehle auf dem Bildschirm angezeigt werden.
  2. SET /P name=Wie ist dein Name? bittet den Benutzer, seinen Namen einzugeben und speichert ihn in der Variablen name.
  3. echo Hallo, %name%! zeigt eine Begrüßung mit dem eingegebenen Namen an.
  4. pause hält das Fenster offen, sodass du das Ergebnis sehen kannst.

Versuche, dieses Skript auszuführen. Es ist, als hättest du ein kleines Gespräch mit deinem Computer!

Grundlegende Ausgabe: Der ECHO Befehl

Wir haben den ECHO-Befehl bereits in Aktion gesehen. Es ist die primäre Methode zur Anzeige von Ausgabe in Batch-Skripten. Lassen wir uns ein bisschen näher damit beschäftigen:

@echo off
echo Dies ist eine einfache Ausgabe.
echo.
echo Diese Zeile hat eine leere Zeile darüber.
echo "Anführungsstriche" werden如此 angezeigt.
echo.
echo Aktueller Termin: %date%
echo Aktuelle Uhrzeit: %time%
pause

Hier ist, was passiert:

  • echo. gibt eine leere Zeile aus.
  • Wir können ECHO verwenden, um Text, Variablen und sogar Systeminformationen wie Datum und Uhrzeit anzuzeigen.

Ausgabe umleiten (Stdout und Stderr)

Nun sprechen wir über das Umleiten von Ausgabe. In Batch-Skripten haben wir zwei Hauptarten von Ausgabe:

  1. Standard Output (stdout): Die normale Ausgabe eines Befehls.
  2. Standard Error (stderr): Fehlermeldungen oder diagnostische Ausgaben.

Wir können diese Ausgaben in Dateien umleiten, indem wir die Operatoren > und >> verwenden.

Standard Output umleiten

@echo off
echo Dies wird in eine Datei gespeichert > output.txt
echo Dies wird der Datei hinzugefügt >> output.txt
type output.txt
pause

In diesem Skript:

  • > erstellt (oder überschreibt) eine Datei und schreibt die Ausgabe hinein.
  • >> fügt die Ausgabe zu einer vorhandenen Datei hinzu (oder erstellt sie, wenn sie nicht existiert).
  • type output.txt zeigt den Inhalt der Datei an.

Standard Error umleiten

Um Fehlermeldungen umzuleiten, verwenden wir 2> anstelle von >.

@echo off
dir nicht_existierender_ordner 2> error.txt
type error.txt
pause

Dieses Skript versucht, einen nicht existierenden Ordner aufzulisten und leitet die Fehlermeldung in eine Datei um.

Both Stdout und Stderr umleiten

Wir können beide Arten von Ausgabe in dieselbe Datei umleiten:

@echo off
dir 2>&1 > output.txt
type output.txt
pause

Hier bedeutet 2>&1, dass "stderr an dieselbe Stelle umgeleitet wird wie stdout".

Programmausgabe unterdrücken

Manchmal möchtest du einen Befehl ausführen, ohne seine Ausgabe anzuzeigen. Wir können dies erreichen, indem wir die Ausgabe in ein spezielles Gerät namens NUL umleiten.

@echo off
echo Dies wird angezeigt
echo Dies wird nicht angezeigt > NUL
dir > NUL
echo Die Verzeichnisliste wurde unterdrückt
pause

In diesem Skript werden die Ausgabe des zweiten ECHO-Befehls und des DIR-Befehls unterdrückt.

Erweiterte Eingabe/Ausgabetechniken

Nun, da wir die Grundlagen abgedeckt haben, werfen wir einen Blick auf einige fortgeschrittene Techniken.

Verwenden von CHOICE für Benutzer-Eingabe

Der CHOICE-Befehl bietet eine strukturierte Methode zur Benutzer-Eingabe:

@echo off
echo Magst du Programmieren?
choice /c YN /m "Gib Y für Ja oder N für Nein ein"
if errorlevel 2 goto Nein
if errorlevel 1 goto Ja
:Ja
echo toll! Lass uns mehr lernen!
goto End
:Nein
echo Keine Sorge, du wirst es bald lieben!
:End
pause

Dieses Skript:

  1. Stellt dem Benutzer eine Ja/Nein-Frage.
  2. Verwendet /c YN, um die gültigen Auswahlmöglichkeiten (Y oder N) festzulegen.
  3. Verwendet /m, um eine benutzerdefinierte Nachricht anzuzeigen.
  4. Verwendet if errorlevel, um die Benutzerwahl zu überprüfen und zu der entsprechenden Marke zu springen.

Aus einer Datei lesen

Wir können auch Eingaben aus einer Datei lesen:

@echo off
for /f "delims=" %%a in (input.txt) do (
echo Gelesene Zeile: %%a
)
pause

Dieses Skript liest jede Zeile aus input.txt und zeigt sie an.

In mehrere Dateien schreiben

Lassen wir uns ein Skript erstellen, das in mehrere Dateien schreibt:

@echo off
echo Datei 1 Inhalt > file1.txt
echo Datei 2 Inhalt > file2.txt
echo Datei 3 Inhalt > file3.txt
echo Dateien erfolgreich erstellt!
pause

Dies erstellt drei separate Dateien mit unterschiedlichem Inhalt.

Zusammenfassung der Eingabe/Ausgabemethoden

Lassen wir uns die Eingabe/Ausgabemethoden, die wir gelernt haben, in einer praktischen Tabelle zusammenfassen:

Methode Beschreibung Beispiel
SET /P Benutzer-Eingabe erhalten SET /P name=Name eingeben:
ECHO Ausgabe anzeigen echo Hallo, Welt!
> Ausgabe in Datei umleiten echo Text > datei.txt
>> Ausgabe an Datei anhängen echo Mehr Text >> datei.txt
2> Fehlerausgabe umleiten command 2> fehler.txt
2>&1 Sowohl stdout als auch stderr umleiten command > ausgabe.txt 2>&1
NUL Ausgabe unterdrücken command > NUL
CHOICE Strukturierte Benutzer-Eingabe choice /c YN /m "Ja oder Nein?"
FOR /F Aus Datei lesen for /f "delims=" %%a in (datei.txt) do ...

Und dort hast du es, Leute! Wir sind durch die Länder der Batch-Skript-Eingabe und -Ausgabe gereist. Denke daran, der Schlüssel zum Beherrschen dieser Konzepte ist die Übung. Versuche, deine eigenen Skripte zu schreiben, experimentiere mit verschiedenen Befehlen und fürchte nicht, Fehler zu machen - das ist, wie wir lernen!

Wie dein alter Computerlehrer immer sagt: "In der Programmierung ist jeder Fehler eine neue verkleidete Lerngelegenheit." Also, los geht's, schreibe einige Batch-Skripte und möge deine Ausgaben stets so intendiert sein, wie du es dir wünscht!

Credits: Image by storyset