Hallo,
Wie bediene ich mich denn der besseren Shell?
Die bash Shell ist auf Unix ähnlichen System wie z.B. auch Linux eine sehr verbreitete Shell. Du kannst sie aber auch unter Windows verwenden, dafür existiert das Cygwin[1] Projekt, welches die Verwendung von vielen Programmen aus der Unix Welt unter Windows ermöglicht.
Auf der Homepage findest du auch die Installationsroutine für Cygwin, damit kannst du dir z.B. die bash auf deinen Rechner holen.
Eine Schlafe in einer Batch-Datei ähnlich wie for (i=1;i<=10;i++) gibt es wohl nicht, oder?
Doch, die existiert auch:
Durchlaufen eines Wertebereichs
Verwenden Sie eine iterative Variable, um den Anfangswert (Anfang#) anzugeben und anschließend einen bestimmten Wertebereich zu durchlaufen, bis der Endwert (Ende#) erreicht wird. /L führt die Iteration aus und vergleicht dabei Anfang# mit Ende#. Solange Anfang# kleiner als Ende# ist, wird der Befehl ausgeführt. Wenn die iterative Variable Ende# überschreitet, verlässt die Eingabeaufforderung die Schleife. Sie können auch mit einem negativen Wert für Schritt# einen Wertebereich in abfallender Reihenfolge durchlaufen. (1,1,5) generiert beispielsweise die Sequenz 1 2 3 4 5 und (5,-1,1) generiert die Sequenz (5 4 3 2 1). Für diesen Befehl gilt die folgende Syntax:
for /L {%% | %}Variable in (Anfang#,Schritt#,Ende#) do Befehl [Befehlszeilenoptionen]
Wie kann ich eine Batch-Datei so programmieren, dass sie durch
batch.bat -wert
Die Parameter mit denen eine Batchdatei aufgerufen wird stehen automatisch in den Variablen %1 bis %9 (oder %%1, da bin ich mir nicht so sicher) zur Verfügung.
Wenn du dir Cygwin installiert hast, dann kannst du dich aber auch mal mit dem Unix Pendant zu Batch Dateien befassen. Die Bash Shell bringt eine eigene sehr mächtige Scriptingsprache mit, wenn du dich damit mal angefreundet hast, dann wirst du mit Batchdateien nichts mehr zu tun haben wollen, da dir die Shellscripts in Zusammenarbeit mit vielen kleinen Hilfsprogrammen viel mehr Möglichkeiten bieten.
Viele Grüße,
Stefan