Batch-Skript - Variablen

Es gibt zwei Arten von Variablen in Batchdateien. Einer ist für Parameter, die übergeben werden können, wenn die Batch-Datei aufgerufen wird, und der andere erfolgt über den Befehl set.

Kommandozeilenargumente

Batch-Skripte unterstützen das Konzept von Befehlszeilenargumenten, bei denen Argumente beim Aufrufen an die Batch-Datei übergeben werden können. Die Argumente können aus den Batchdateien über die Variablen% 1,% 2,% 3 usw. aufgerufen werden.

Das folgende Beispiel zeigt eine Batchdatei, die 3 Befehlszeilenargumente akzeptiert und diese auf dem Befehlszeilenbildschirm wiedergibt.

@echo off 
echo %1 
echo %2 
echo %3

Wenn das obige Batch-Skript in einer Datei namens test.bat gespeichert ist und wir den Batch als ausführen sollten

Test.bat 1 2 3

Es folgt ein Screenshot davon, wie dies in der Eingabeaufforderung aussehen würde, wenn die Batchdatei ausgeführt wird.

Der obige Befehl erzeugt die folgende Ausgabe.

1 
2 
3

Wenn wir den Batch als ausführen würden

Example 1 2 3 4

Die Ausgabe würde immer noch die gleiche wie oben bleiben. Der vierte Parameter wird jedoch ignoriert.

Befehl setzen

Die andere Art und Weise, wie Variablen initialisiert werden können, ist der Befehl 'set'. Es folgt die Syntax des Befehls set.

Syntax

set /A variable-name=value

wo,

  • variable-name ist der Name der Variablen, die Sie festlegen möchten.

  • value ist der Wert, der für die Variable festgelegt werden muss.

  • /A – Dieser Schalter wird verwendet, wenn der Wert numerischer Natur sein muss.

Das folgende Beispiel zeigt eine einfache Möglichkeit, den Befehl set zu verwenden.

Beispiel

@echo off 
set message=Hello World 
echo %message%
  • Im obigen Code-Snippet wird eine Variable namens message definiert und mit dem Wert "Hello World" festgelegt.

  • Beachten Sie, dass die Variable im% -Zeichen eingeschlossen sein muss, um den Wert der Variablen anzuzeigen.

Ausgabe

Der obige Befehl erzeugt die folgende Ausgabe.

Hello World

Arbeiten mit numerischen Werten

Im Batch-Skript ist es auch möglich, eine Variable zu definieren, die einen numerischen Wert enthält. Dies kann mit dem Schalter / A erfolgen.

Der folgende Code zeigt eine einfache Möglichkeit, wie numerische Werte mit dem Schalter / A eingestellt werden können.

@echo off 
SET /A a = 5 
SET /A b = 10 
SET /A c = %a% + %b% 
echo %c%
  • Wir setzen zuerst den Wert von 2 Variablen, a und b, auf 5 bzw. 10.

  • Wir addieren diese Werte und speichern sie in der Variablen c.

  • Schließlich zeigen wir den Wert der Variablen c an.

Die Ausgabe des obigen Programms wäre 15.

Alle arithmetischen Operatoren arbeiten in Batchdateien. Das folgende Beispiel zeigt, dass arithmetische Operatoren in Batchdateien verwendet werden können.

@echo off 
SET /A a = 5 
SET /A b = 10 
SET /A c = %a% + %b% 
echo %c% 
SET /A c = %a% - %b% 
echo %c% 
SET /A c = %b% / %a% 
echo %c% 
SET /A c = %b% * %a% 
echo %c%

Der obige Befehl erzeugt die folgende Ausgabe.

15 
-5 
2 
50

Lokale und globale Variablen

In jeder Programmiersprache gibt es die Möglichkeit, Variablen als Bereiche zu kennzeichnen, dh als Codeabschnitt, auf den zugegriffen werden kann. Normalerweise kann auf Variablen mit einem globalen Bereich von jedem Programm aus zugegriffen werden, während Variablen mit lokalem Bereich eine definierte Grenze haben, an der auf sie zugegriffen werden kann.

DOS-Skripte enthalten auch Definitionen für Variablen mit lokalem und globalem Gültigkeitsbereich. Standardmäßig sind Variablen für Ihre gesamte Eingabeaufforderungssitzung global. Rufen Sie den Befehl SETLOCAL auf, um Variablen lokal für den Bereich Ihres Skripts zu erstellen. Nach dem Aufruf von SETLOCAL werden alle Variablenzuweisungen beim Aufrufen von ENDLOCAL, beim Aufrufen von EXIT oder wenn das Ende der Datei (EOF) in Ihrem Skript erreicht ist, zurückgesetzt. Das folgende Beispiel zeigt den Unterschied, wenn lokale und globale Variablen im Skript festgelegt werden.

Beispiel

@echo off 
set globalvar = 5
SETLOCAL
set var = 13145
set /A var = %var% + 5
echo %var%
echo %globalvar%
ENDLOCAL

Einige wichtige Dinge, die Sie über das oben genannte Programm beachten sollten.

  • Die 'globalvar' wird mit einem globalen Bereich definiert und ist im gesamten Skript verfügbar.

  • Die Variable 'var' wird in einem lokalen Bereich definiert, da sie zwischen einem Block 'SETLOCAL' und 'ENDLOCAL' eingeschlossen ist. Daher wird diese Variable zerstört, sobald die Anweisung 'ENDLOCAL' ausgeführt wird.

Ausgabe

Der obige Befehl erzeugt die folgende Ausgabe.

13150
5

Sie werden feststellen, dass der Befehl echo% var% nichts ergibt, da nach der ENDLOCAL-Anweisung die Variable 'var' nicht mehr vorhanden ist.

Arbeiten mit Umgebungsvariablen

Wenn Sie Variablen haben, die für Batchdateien verwendet werden, ist es immer vorzuziehen, Umgebungsvariablen zu verwenden. Sobald die Umgebungsvariable definiert ist, kann über das% -Zeichen auf sie zugegriffen werden. Das folgende Beispiel zeigt, wie das auf einem System definierte JAVA_HOME angezeigt wird. Die Variable JAVA_HOME ist eine Schlüsselkomponente, die normalerweise von einer Vielzahl von Anwendungen verwendet wird.

@echo off 
echo %JAVA_HOME%

Die Ausgabe würde das Verzeichnis JAVA_HOME anzeigen, das von System zu System abhängen würde. Das Folgende ist ein Beispiel für eine Ausgabe.

C:\Atlassian\Bitbucket\4.0.1\jre