set - Setzen, ändern oder anzeigen von Variablen - CMD Befehle Übersicht

Beschreibung
Setzen, ändern oder anzeigen von Variablen.
Ohne Angabe von Parametern werden alle Variablen aufgelistet.

Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben "P" beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden.  Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    	   wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    	   wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
  	     zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
                   für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
                 Befehlsinterpreter aufgerufen hat.

%HIGHESTNUMANODENUMBER% - erweitert zu der h”chsten NUMA-Knotennummer
   			    auf diesem Computer.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben "P" beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden.  Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    	   wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    	   wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
  	     zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
                   für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
                 Befehlsinterpreter aufgerufen hat.

%HIGHESTNUMANODENUMBER% - erweitert zu der h”chsten NUMA-Knotennummer
   			    auf diesem Computer.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben "P" beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden.  Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    	   wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    	   wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
  	     zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
                   für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
                 Befehlsinterpreter aufgerufen hat.

%HIGHESTNUMANODENUMBER% - erweitert zu der h”chsten NUMA-Knotennummer
   			    auf diesem Computer.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben "P" beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden. Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
    zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
    für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
    Befehlsinterpreter aufgerufen hat.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben 'P' beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein nummerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-nummerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Nummerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden. Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
    zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
    für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
    Befehlsinterpreter aufgerufen hat.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben 'P' beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines Variablen-
namens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein nummerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    * / %               - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-nummerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Nummerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden. Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
    zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
    für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
    Befehlsinterpreter aufgerufen hat.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariable.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die derzeitigen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, das heiát
ohne Gleichheitszeichen oder anderen Wert, wird der Inhalt aller Variablen
angezeigt, deren Namen mit eben diesen Buchstaben beginnen. So werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben ?P? beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt ein Gleichheitszeichen (=) als Wert für eine Umgebungs-
variable an jeder Stelle, aber nicht als erstes Zeichen.

Dem SET-Befehl wurde eine neue Option hinzugefügt:

    SET /A Ausdruck

Die /A-Option gibt an, daá die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    * / %               - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise Exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
      &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Modulo-Operatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nichtnumerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
das heiát auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators.
Numerische Werte stellen immer Dezimalzahlen dar, es sei denn sie haben einen
Präfix 0x für hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale
Zahlen. Damit stellt 0x12 dieselbe Zahl wie 0b10010 oder 022 dar. Beachten Sie,
daá die oktale Schreibweise verwirrend sein kann: So sind 08 und 09 keine
gültigen Zahlen, da 8 und 9 keine erlaubten oktalen Ziffern sind.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen verbessert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere Zeichen-
folge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe
zu l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur die fünf
Zeichen, die mit dem elften Zeichen (Offset=10) des erweiterten Ergebnisses
beginnen.
Definiert oder entfernt Windows-Umgebungsvariablen oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable        Name der Umgebungsvariable.
  Zeichenfolge    Zeichenfolge, die der Variablen zugewiesen wird.

Der Befehl SET ohne Parameter zeigt die definierten Umgebungsvariablen an.
Definiert oder entfernt Windows-Umgebungsvariablen oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable        Name der Umgebungsvariable.
  Zeichenfolge    Zeichenfolge, die der Variablen zugewiesen wird.

Der Befehl SET ohne Parameter zeigt die definierten Umgebungsvariablen an.
Definiert oder entfernt Windows-Umgebungsvariablen oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable        Name der Umgebungsvariable.
  Zeichenfolge    Zeichenfolge, die der Variablen zugewiesen wird.

Der Befehl SET ohne Parameter zeigt die definierten Umgebungsvariablen an.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben "P" beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden.  Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    	   wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    	   wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
  	     zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
                   für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
                 Befehlsinterpreter aufgerufen hat.

%HIGHESTNUMANODENUMBER% - erweitert zu der h”chsten NUMA-Knotennummer
   			    auf diesem Computer.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben "P" beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden.  Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    	   wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    	   wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
  	     zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
                   für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
                 Befehlsinterpreter aufgerufen hat.

%HIGHESTNUMANODENUMBER% - erweitert zu der h”chsten NUMA-Knotennummer
   			    auf diesem Computer.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben "P" beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden.  Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    	   wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    	   wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
  	     zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
                   für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
                 Befehlsinterpreter aufgerufen hat.

%HIGHESTNUMANODENUMBER% - erweitert zu der h”chsten NUMA-Knotennummer
   			    auf diesem Computer.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben "P" beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines
Variablennamens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    ! ~ -               - monäre Operatoren
    * / %              - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden. Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
    zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
    für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
    Befehlsinterpreter aufgerufen hat.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariablen.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, d.h.
ohne Gleichheitszeichen oder einem anderen Wert, wird der Inhalt aller 
Variablen angezeigt, deren Namen mit eben diesem Buchstaben beginnen. So
werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben 'P' beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt kein Gleichheitszeichen als Bestandteil eines Variablen-
namens.

Dem SET-Befehl wurden zwei neue Optionen hinzugefügt:

    SET /A Ausdruck
    SET /P Variable=[EingabeaufforderungZeichenfolge]

Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen
ein nummerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    * / %               - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
    &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nicht-nummerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
d.h. auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators. Nummerische Werte
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen,
da 8 und 9 keine erlaubten oktalen Ziffern sind.

Die Option /P erm”glicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fünf
Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die
Länge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.
Wenn eine der Zahlen (Offset oder Länge) negativ ist, dann wird der angegebene
Wert der Länge des Umgebungsvariablenwerts hinzugefügt.

    %PATH:~-10%

extrahiert die letzten 10 Zeichen der Variable PATH.

    %PATH:~0,-2%

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Die Unterstützung der verz”gerten Erweiterung von Umgebungsvariablen wurde
hinzugefügt. Standardmäáig ist sie deaktiviert. Sie kann mit der
Befehlszeilenoption /V von CMD.EXE aktiviert/deaktiviert werden.
Siehe CMD /?

Die verz”gerte Erweiterung von Variablen verbessert die M”glichkeiten der
Variablenerweiterung. Bisher wurden die Variablen beim Lesen des Texts, und
nicht bei dessen Ausführung, erweitert. Das folgende Beispiel zeigt ein
Problem, das dabei auftritt:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher;
        if "%VAR%" == "nachher" @echo Es funktioniert!
    )

Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen
beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem
geh”rt. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie
gleich sein kann. Auch das folgende Beispiel funktioniert nicht wie erwartet:

    set LISTE=
    for %i in (*) do set LISTE=%LISTE% %i
    echo %LISTE%

Es wird KEINE Liste der Dateien im aktuellen Verzeichnis erstellt, stattdessen
erhält LISTE den Namen der letzten Datei als Wert. Dies ist der Fall, weil
%LISTE% nur einmal beim Lesen des IF-Befehls erweitert wird. Zu diesem
Zeitpunkt ist LISTE leer.
Die FOR-Schleife, die tatsächlich ausgeführt wird, lautet:

    for %i in (*) do set LISTE= %i

Hiermit wird der Variablen LISTE immer wieder der letzte Dateiname
zugewiesen.
 
Die verz”gerte Erweiterung von Umgebungsvariablen erlaubt es, eine
Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem
Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verz”gerter
Erweiterung von Umgebungsvariablen k”nnen obige Beispiele wie folgt geschrieben
werden:

    set VAR=vorher
    if "%VAR%" == "vorher" (
        set VAR=nachher
        if "!VAR!" == "nachher" @echo Es funktioniert!
    )

    set LISTE=
    for %i in (*) do set LISTE=!LISTE! %i
    echo %LISTE%

Wenn die Befehlserweiterungen aktiviert sind, gibt es mehrere dynamische
Umgebungsvariablen, die zwar erweiterungsfähig sind, aber nicht in der Liste
von Variablen auftauchen, die mit SET angezeigt werden. Diese Variablenwerte
werden bei jeder Werterweiterung der Variable dynamisch berechnet. Falls eine
Variable mit einem dieser Namen definiert wird, dann überschreibt diese
Definition die unten stehende dynamische Definition:

%CD% - expandiert zum aktuellen Verzeichnisnamen.

%DATE% - expandiert zum aktuellen Datum unter Verwendung desselben Formats
    wie der DATE-Befehl.

%TIME% - expandiert zur aktuellen Zeit unter Verwendung desselben Formats
    wie der TIME-Befehl.

%RANDOM% - expandiert zu einer zufällig gewählten Dezimalzahl
    zwischen 0 und 32767.

%ERRORLEVEL% - expandiert zum aktuellen ERRORLEVEL-Wert.

%CMDEXTVERSION% - expandiert zur Versionsnummer der aktuellen Erweiterungen
    für den Befehlsinterpreter.

%CMDCMDLINE% - expandiert zur ursprünglichen Befehlszeile, die den
    Befehlsinterpreter aufgerufen hat.
Setzt oder l”scht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

  Variable      Bezeichnet den Namen der Umgebungsvariable.
  Zeichenfolge  Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die derzeitigen Umgebungsvariablen an.

Wenn die Befehlserweiterungen aktiviert sind, wird SET folgendermaáen
verändert:

Wenn der SET-Befehl mit nur einem Variablennamen aufgerufen wird, das heiát
ohne Gleichheitszeichen oder anderen Wert, wird der Inhalt aller Variablen
angezeigt, deren Namen mit eben diesen Buchstaben beginnen. So werden durch

    SET P

alle Variablen angezeigt, die mit dem Buchstaben ?P? beginnen.

Der SET-Befehl legt den ERRORLEVEL mit 1 fest, wenn der Variablenname nicht
in der aktuellen Umgebung gefunden wird.

Der SET-Befehl erlaubt ein Gleichheitszeichen (=) als Wert für eine Umgebungs-
variable an jeder Stelle, aber nicht als erstes Zeichen.

Dem SET-Befehl wurde eine neue Option hinzugefügt:

    SET /A Ausdruck

Die /A-Option gibt an, daá die Zeichenfolge rechts vom Gleichheitszeichen
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer
Anordnung mit abnehmendem Vorrang:

    ()                  - Gruppierung
    * / %               - arithmetische Operatoren
    + -                 - arithmetische Operatoren
    << >>               - logische Verschiebung
    &                   - bitweise UND
    ^                   - bitweise Exklusives ODER
    |                   - bitweise ODER
    = *= /= %= += -=    - Zuordnung
      &= ^= |= <<= >>=
    ,                   - Trennzeichen für Ausdrücke

Wenn Sie einen der arithmetischen oder Modulo-Operatoren verwenden, müssen
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle
nichtnumerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht
definiert ist, wird für diese der Wert Null verwendet. Somit k”nnen Sie
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben,
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile,
das heiát auáerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert
eine Umgebungsvariable auf der linken Seite des Operators.
Numerische Werte stellen immer Dezimalzahlen dar, es sei denn sie haben einen
Präfix 0x für hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale
Zahlen. Damit stellt 0x12 dieselbe Zahl wie 0b10010 oder 022 dar. Beachten Sie,
daá die oktale Schreibweise verwirrend sein kann: So sind 08 und 09 keine
gültigen Zahlen, da 8 und 9 keine erlaubten oktalen Ziffern sind.

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen verbessert:

    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere Zeichen-
folge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe
zu l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".

    %PATH:~10,5%

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur die fünf
Zeichen, die mit dem elften Zeichen (Offset=10) des erweiterten Ergebnisses
beginnen.

Beispiel:
Anzeige aller Variablen mit deren Inhalt die mit dem Buchstaben W beginnen.

Setzen einer neuen Variable Test mit dem Wert 555

Setzen einer neuen Variable Test dessen Wert der Benutzer selbst bestimmen kann

Setzen der Variable Zeit mit der aktuellen Uhrzeit.

 

Verfügbar unter
Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000, Windows NT4, Windows ME, Windows 98, Windows 95, Windows 2016 Server, Windows 2012 R2 Server, Windows 2008 R2 Server, Windows 2003 R2 Server, Windows 2000 Server, Windows NT4 Server

Beitrag kommentieren

Bitte verfasse einen Kommentar.

Dein Kommentar wird vor der Freischaltung von einem Admin moderiert.