So kann man einem Batch-Script Parameter übergeben

So kann man einem Batch Script Parameter übergeben!

Einführung

Oft ist es nötig, einem Batch-Script Parameter zu übergeben, damit Anweisungen bearbeitet werden können. Im folgenden kleinen Beispiel wird gezeigt, wie die Parameterübergabe grundsätzlich funktioniert.

Parameter eine Batch-Script übergeben

Mit der Windows PowerShell eine Auf...
Mit der Windows PowerShell eine Aufgabe erstellen

Es soll ein Script erstellt werden, welches einen Ordner anlegt. Das besondere ist jetzt, dass der Name des Ordners dem Script übergeben wird. Das Verzeichnis wird also angelegt und der Name erst durch den Übergabeparameter festgelegt.

@echo off md %1

Aufgerufen wird das Script mit der unten dargestellten Codezeile. Wobei der Name des Skripts “parameter.bat” lautet und dieses unter dem Pfad c:\scripte gespeichert wurde.

Wem nicht klar ist, woher die Endung “.bat” kommt und wie man diese erstellt, dem empfehle ich den Artikel: So schreibt man ein Batch-Script durchzulesen.

c:\scripte>parameter.bat testordner 

Variablen für die Übergabeparameter im Batch-Script

Der übergebene Parameter wird in die Variable %1 gespeichert. Anschließend wird mit md (make directory) das Verzeichnis erstellt. Der Ordner wird natürlich im gleichen Verzeichnis angelegt, von welchem das Script ausgeführt wird.

Der Ordner liegt nun im Verzeichnis c:\scripte. Mehrere übergebene Parameter werden der Reihe nach dann in %1, %2, etc. gespeichert. Die Variablen, mit den Parametern, werden der Reihe nach, nach dem Skriptnamen angehängt. Interessant ist noch die Ausgabe %0. Den hier steht der Name des aufgerufenen Scripts.

Funktionsweise der IF-Anweisung beim Batch-Script

Erweitern wir das Script nun mit einer kleinen Überprüfung, ob ein Parameter übergeben worden ist. Hierfür bedienen wir uns einer einfachen if – Anweisung inklusiver Sprungmarken. Schauen wir uns als Erstes den Quellcode an.

@echo off if %1.==. goto: FEHLER goto:eof 
:FEHLER 
echo Das Script muss folgendermaßen aufgerufen werden: %0 Ordnername

Mit der if-Bedingung prüfen wir, ob ein Parameter übergeben worden ist. Innerhalb eines Batch-Scriptes kann man nicht auf null prüfen, darum verwenden wir den Punkt. Es könnte auch jedes andere Zeichen verwendet werden.

D. h. wenn in %1 nichts drinnen steht, so ist die Bedingung wahr, weil Punkt gleich Punkt ist. Deshalb springt das Script mit der Anweisung goto zu der Sprungmarke FEHLER. Dort geben wir an, wie das Script richtig aufgerufen werden muss.

Hier verwenden wir nun die Variable %0. Nicht vergessen, da drinnen steht der Name des Scripts. Wenn jetzt beim Aufruf des Scripts kein Ordnername übergeben wurde, so wird uns aufgezeigt, wie wir das Script ausführen müssen. Sofern wir einen Ordner übergeben wird dieser angelegt und das Script wird mit goto:eof (end of file) beendet.

Ausblick zum Batch-Scripting und Zukunft

Batch-Scripte sind relativ einfach und schnell erstellt. Das obige Beispiel beschreibt im Wesentlichen drei wichtige Funktionen von Batch-Scripten: Parmeterübergabe, if-Abfragen und Sprungmarken.

Das Batch-Scripting wird aber auch immer mehr von der Windows PowerShell abgelöst. Das liegt wohl auch daran, dass die Windows PowerShell viel mehr Optionen anbietet.

Bei der PowerShell handelt es sich um ein objektorientierte Skriptsprache, dadurch ergeben sich viel mehr Anwendungsmöglichkeiten. Du findest in diesem Blog viele Anleitung zu Windows PowerShell. Für einen kurzen Überblick kann ich dir folgenden Artikel empfehlen.

Möchtest du Wissen, wie man mit der Windows PowerShell Parameter einem Skript übergeben kann, so findest du dazu im folgenden Beitrag eine Anleitung:

Ich kann dir auf alle Fälle empfehlen, sich mit der Windows PowerShell näher zu beschäftigen. Langfristig ist eine Systemadministration ohne diese nicht mehr denkbar.

Trotzdem ist für einfache Anwendungen ein Batch-Script immer noch sehr von Vorteil. Mit der oben vorgestellten Parametereingabe ergeben sich viele Anwendungsmöglichkeiten. Eine davon wäre z. B. die Prüfung, ob eine Datei oder ein Ordner vorhanden ist. So was wäre das sinnvoll beim Prüfen von Logfiles, was in der Administration eine große Bedeutung hat.

Das könnte ich auch interessieren:

Partnernlinks

Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 15.06.2022

1 Kommentar

  1. OMG DANKEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!
    Ich tüftel schon ewig daran, warum
    if %1 EQU nul
    nicht geht!

    Erklärung: Batch schließt das Programm bei Fehlern statt sie anzuzeigen und mit > log.txt kann man sie auch nicht abgreifen.

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*