HomePC-TrixLogixOptixProxMagixcooles ZeuxLinxSucheMail

Batch-Tips

Nützliche Befehle und Beipiele für DOS-Batchdateien von A bis Z

Automatische Übergabe von Bestätigungen

1. RETURN erzeugen

ECHO hat normalerweise die Aufgabe, eine Textmeldung zu senden. So bewirkt

echo Hallo!

dass im DOS-Fenster Hallo! angezeigt wird.

Der Befehl echo. erzeugt hingegen keinen Punkt, sondern ein RETURN (Zeilenumbruch) und ist daher eine nützliche Hilfe beim Schreiben von Batchdateien - insbesondere in Kombination mit dem Pipe-Zeichen:

echo.|date

etwa gibt das Datum aus, indem die Abfrage Neues Datum (TT.MM.JJ): automatisch mit RETURN (ENTER) quittiert wird und somit die Batchdatei nicht wegen des Wartens auf eine Eingabe stehenbleibt. Das Pipe-Zeichen | erzeugt man mit der Tastenkombination "AltGr" + "<". Es gibt das erzeugte ENTER an den date-Befehl weiter.

Dieselbe Wirkung wie

echo.|date

hat die Befehlsverkettung

echo|more|date

(Wie zusätzlich die Anzeige "Neues Datum (TT.MM.JJ):" unterdrückt werden kann, steht hier.)

Eine weitere Möglichkeit, ein Return zu erzeugen, ist eine Batchdatei namens enter.bat, die nichts als eine Leerzeile enthält. Mit dem Befehl

date<enter.bat

erhält man dasselbe Ergebnis wie oben.

2. Sonstige Bestätigungen erzeugen

echo j|del c:\windoof\temp\*.*

Der Befehl arbeitet so: Das "j" wird an den "del"-Befehl übergeben, der bei der Bearbeitung abfragt, ob alle Dateien im angegebenen Ordner gelöscht werden sollen. Die Bestätigung erfolgt also automatisch mit der Übergabe von "j" für "Ja".

Bildschirmausgabe unterdrücken

1. Mit "ctty"

Die Meldungen aller zwischen "ctty nul" und "ctty con" eingeschlossenen Befehle werden unterdrückt:

@echo off
ctty nul
(z. B. autoexec.bat-Befehle)
ctty con

2. Mit ">nul"

Einzelne Befehlsmeldungen lassen sich mit der Umleitung ins Nirwana (>nul) unterdrücken. Hier z. B. die Standardanzeige des Befehls PAUSE:

pause >nul

3. Mit "find/v"

Mit der nachfolgenden Befehlsverkettung lassen sich diejenigen Zeilen von Meldungen unterdrücken, die nicht angezeigt werden sollen:

echo.|time|find/v "Neue"

echo.|date|find/v "Neues"


Wie hier geschildert, wird mit echo.| ein RETURN an den nachfolgenden Befehl übergeben. Die beiden Zeilen Neue Uhrzeit: und Neues Datum (TT.MM.JJ): werden dabei durch find/v unterdrückt. Durch den Parameter /v werden nur diejenigen Zeilen angezeigt, die die angegebene Zeichenfolge nicht enthalten.

4. Hinweise:

1. Einige Meldungen (z. B. von Treibern) sind hartnäckig und lassen sich nicht unterdrücken.

2. Unter Windoof NT (nicht Windoof 98) gibt es eine wesentlich elegantere Methode zur Unterdrückung der Abfragen nach neuem Datum bzw. Zeit als die oben genannten:

date/t

time/t

Mit der Option /t wird nicht nach neuem Datum bzw. Zeit gefragt.

Boot.com

Die nur 8 Byte große Datei boot.com führt einen Warmstart aus. Sie ist nur unter reinem DOS oder im DOS-Modus zu verwenden und besteht aus der Zeile

1 HPSË

gefolgt von einem Zeilenumbruch (RETURN). Die Zahl 1 bezeichnet nicht die Zeilennummer, sondern ist Bestandteil des Befehls. Zum Erzeugen der Datei die o. g. Befehlszeile kopieren, in eine leere Textdatei einfügen, einen Zeilenumbruch setzen und im txt-Format als boot.com speichern.

Boot.com kann von einer Batchdatei aus aufgeufen werden, oder - noch eleganter - von einer Batchdatei mit

echo 1 HPSË>boot.com
boot.com


erzeugt und aufgerufen werden.

Hinweise:

1. Der Internet Explorer kopiert möglicherweise ein zusätzliches Leerzeichen nach dem dem Ë mit. Dieses muss wieder gelöscht werden.

2. Manche Texteditoren, wie z. B. Word, fügen einen zusätzlichen Zeilenumbruch beim Speichern ein. In diesem Fall darf kein manueller Zeilenumbruch gesetzt werden.

3. Zur Kontrolle prüfen, ob die Dateigröße genau 8 Byte beträgt.

4. Das ANSI-Zeichen Ë wird erzeugt mit ALT+0203. Es entspricht dem ASCII-Zeichen 203 und sieht unter DOS aus wie ein T-förmiges Rohrstück.

Existenz eines Verzeichnisses überprüfen

Der Befehl "exist" prüft das Vorhandensein einer Datei:

if exist c:\windoof\103.txt echo Datei 103.txt vorhanden!

Leider kann man ihn nicht direkt für Verzeichnisse anwenden. Mit dem Trick, die Existenz der in jedem Verzeichnis vorhandenen "Nichts-Datei" NUL abzufragen, geht es aber trotzdem:

if exist c:\windoof\nul echo Windoof-Verzeichnis vorhanden!

Ordnerinhalt ausdrucken

Die folgende Batchdatei listet den Inhalt des Verzeichnisses G:\ sortiert in einer Textdatei auf und zeigt diese im Editor an:

cd >g:\out.txt
echo. >g:\out.txt
dir /B /OGEN %1\*.* >g:\out.txt
start /w c:\windoof\notepad.exe g:\out.txt
del g:\out.txt

Verzeichnis- und Laufwerkwechsel in einem Rutsch

===========================================
CDD.BAT
===========================================
REM Verzeichnis- und Laufwerkwechsel in einem Rutsch
REM Notation: CDD [Laufwerk][Pfadangabe]
REM z.B. CDD D:\PROGRAMME\BABYLON
REM CDD F:
REM CDD SYSTEM\PROOF

@echo off
if (%1)==() goto ende
echo %1|find ":" > nul
if not errorlevel 1 %1\
cd %1
:ende
echo.