Benutzer-Werkzeuge

Webseiten-Werkzeuge


dateimanagement:kommandozeile:batch:echo_set

echo, set

echo - Meldungen ausgeben

Manchmal möchten Sie, dass Batch-Programme auch Meldungen am Bildschirm ausgeben. Dafür ist der Befehl echo da. Probieren Sie es aus:

echo Hallo Welt!

Mit echo kann auch das aktuelle Datum oder die aktuelle Uhrzeit ausgegeben werden. Probieren Sie es aus:

echo %DATE%
echo %TIME%

Normalerweise werden beim Abarbeiten eines Batch-Programmes alle Befehle, die ausgeführt werden, auch am Bildschirm ausgegeben. Das kann praktisch sein, weil Sie dann immer wissen, was das Batch-Programm gerade tut. Probieren Sie das Batch-Programm aus:

echo_ist_on.cmd
echo Sicherung läuft ...
echo Sicherung beendet.
pause

Es kann aber auch unübersichtlich werden. Wenn Sie möchten, können Sie das mit @echo off ausschalten. Probieren Sie das Batch-Programm aus, und vergleichen Sie die Ausgabe mit dem vorherigen Programm:

echo_ist_off.cmd
@echo off
echo Sicherung läuft ...
echo Sicherung beendet.
pause

Nochmal zurück zu echo %DATE%: Wenn Ihnen die Ausgabe Tag.Monat.Jahr nicht gefällt und Sie lieber Jahr-Monat-Tag hätten, weil nämlich Datei- und Ordnernamen in diesem Format richtig sortiert werden, können Sie das auch bewerkstelligen. Es schaut zugegebenermaßen etwas kompliziert aus. Die Erklärung folg später, Sie können es aber auch einfach nur kopieren und in Ihr eigenes Programm einbauen:

echo %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%

Die Erklärung: Das Jahr beginnt an der Position 6 und ist 4 Zeichen lang, der Monat beginnt an der Position 3 und ist 2 Zeichen lang, der Tag beginnt an der Position 0 und ist 2 Zeichen lang:

0123456789
tt.mm.jjjj

set - Variablen verwenden

Mit dem Befehl set können Sie einer Variablen, deren Namen Sie beliebig wählen, eine Zeichenfolge zuordnen. Probieren Sie es aus:

set MeinOrdner=C:\Users\maxmuster\Desktop
echo %MeinOrdner%

Beachten Sie den Unterschied zwischen echo %MeinOrdner% und echo MeinOrdner!

Der Grund, warum wir die Variable MeinOrdner verwenden, ist der, dass dieser Pfad im Batch-Programm öfter verwendet wird. Es wäre ganz schlechter Stil, die Pfadangabe C:\Users\maxmuster\Desktop öfter zu verwenden, denn wenn Sie eines Tages den Pfad ändern möchten, müssen Sie das an mehreren Stellen tun, und die Wahrscheinlichkeit ist hoch, dass Sie dabei eine Stelle vergessen, und dann arbeitet Ihr Batch-Progamm fehlerhaft. Durch set MeinOrdner=C:\Users\maxmuster\Desktop haben Sie den Pfad nur ein einer einzigen Stelle festgelegt, und brauchen ihn daher auch nur an einer Stelle ändern.

inhalt_meines_ordners_anzeigen.cmd
@echo off
set MeinOrdner=C:\Users\maxmuster\Desktop
echo --------------------------------------------
echo Inhalt vom: %MeinOrdner%
echo --------------------------------------------
cd %MeinOrdner%
dir
pause

Ordner mit aktuellem Datum erstellen

Wir haben gelernt, dass Versionensicherung eine wichtige Sicherungsstrategie bei Dateikorruption ist. Dazu wäre es praktisch, wenn man automatisch einen Ordner anlegen könnte, der das heutige Datum trägt. Die Mittel dazu haben wir bereits gelernt:

Zuerst wird ein Ordnername zusammengebaut und in einer Variable namens Sicherungsordner gespeichert. Damit steht der Ordnername bzw. Pfad für verschiedene weitere Aktionen zur Verfügung, z.B. Erstellen mit md, hineinwechseln mit cd:

Ordner_mit_aktuellem_Datum_erstellen.cmd
set Sicherungsordner=Sicherung_%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
md %Sicherungsordner%
cd %Sicherungsordner%
pause

Wir nehmen an, dieses Batch-Progamm befindet sich auf dem Laufwerk, auf das die Sicherungskopien kommen sollen (z.B. USB-Stick oder Laufwerk M:) und bereits im richtigen Ordner. Alternativ können Sie als Sicherungsordner auch einen absoluten Pfad angeben.

Versionensicherung1.cmd
set KopierenVon=C:\Users\maxmuster\Desktop\*.*
set Sicherungsordner=Sicherung_%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
md %Sicherungsordner%
copy %KopierenVon% %Sicherungsordner%
pause

Batchprogramm für Versionensicherung

Hier ein Beispiel für ein einigermaßen praxistaugliches Batch-Programm für eine Versionensicherung.

Statt copy wird hier xcopy mit der Option /s für 'subdirectories' verwendet, das heißt, es werden auch alle Unterordner mit kopiert.

Passen Sie das Programm an Ihre Bedürfnisse an, und achten Sie darauf, wo Sie absolute und wo relative Pfadangaben einsetzen.

Versionensicherung2.cmd
@echo off
set KopierenVon=C:\Users\maxmuster\Desktop
set Sicherungsordner=Sicherung_%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
md %Sicherungsordner%
echo =====================================================
echo Sichern der Dateien von: %KopierenVon%
echo in den Sicherungsordner: %Sicherungsordner%
echo -----------------------------------------------------
xcopy %KopierenVon% %Sicherungsordner% /s 
echo -----------------------------------------------------
echo Sicherung ist beendet. Bitte kontrollieren Sie im 
echo Sicherungsordner: %Sicherungsordner%
echo ob die Sicherung vollstaendig ist.
echo -----------------------------------------------------
pause
dateimanagement/kommandozeile/batch/echo_set.txt · Zuletzt geändert: 2016-03-25 16:11 von Robert Wiedermann

Seiten-Werkzeuge

Robert Wiedermann, Institut für Statistik (STAT), Universität für Bodenkultur Wien