So kann man beim Scripting mit der Batch Parameter übergeben

Einführung

Oft ist es nötig, einem Batch-Scripting dem Batch Parameter zu übergeben, damit Anweisungen bearbeitet werden können. Im folgenden kleinen Beispiel wird gezeigt, wie man in der cmd Parameter übergeben kann.

Parameter eine Batch-Script übergeben

Es soll ein Script erstellt werden, welches einen Ordner anlegt. Das Besondere ist jetzt, dass der Name des Ordners dem Script übergeben wird. Fachlich spricht man dabei von Variablen. Im Prinzip sind dies Platzhalter.

Es wird also dem Batch eine Variable übergeben oder man könnte auch sagen der cmd werden Parameter übergeben. In diesem Beispiel wird das Verzeichnis 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 

Batch Parameter dem Script übergeben

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 jetzt 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.

Videoanleitung – Grundlagen PowerShell Cmdlets


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: Der cmd Parameter übergeben, 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, was eben dadurch erreicht wird, indem man der cmd Parameter übergibt. So was wäre das sinnvoll beim Prüfen von Logfiles, was in der Administration eine große Bedeutung hat.

Empfehlenswerte Kurse zum Scripting unter Windows

Windows Terminal: Erste Schritte*
Automatisierung mit PowerShell (1/3): Grundlagen*
Windows 11 PowerShell Cookbook*

Das könnte ich auch interessieren:

Weiterführende Literatur

Bestseller Nr. 1

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 18.11.2023

d9289dd476154b81a8e2652fb1c81a94

Steigere dein Wissen

Kostenlose Befehlsreferenzen und E-Books herunterladen

Mehr Informationen zu den kostenlosen Materialien.


1 Kommentar zu „So kann man beim Scripting mit der Batch Parameter übergeben“

  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 verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen