Zweck:Umgebungsvariablen anzeigen, erstellen, ändern oder löschen

 

Format:Anzeigemodus:

SET [/= /D /E /P /S /U /V /X] [wildname]

 

Definitionsmodus:

SET [/= /A /B /D /M /O /S /U /V /E /RO /R [file...] /T:type | name=value | prompt ]

 

Löschungsmodus:

SET [/= /D /M /S /U /V /E ] name=

 

fileEine oder mehrere Eingabedateien, aus denen Variablendefinitionen gelesen werden sollen.
nameDer Name der Umgebungsvariablen.
valueDer neue Wert für die Variable, getrennt vom Namen durch ein Leerzeichen[s].
promptOptionale Eingabeaufforderung für die Option /P  name=.
wildnameName der anzuzeigenden Variable[n]. Kann einen Platzhalter*enthalten , wenn keine Registrierungsvariablen angezeigt werden.

 

/A

Arithmetisch

/R

Lesen aus Datei(en)

/B

Batch-Variable

/RO

Nur-Lese-Variable

/D

Standard

/S

System

/E

Umgebung, auch

/T:Typ

Variablentyp einstellen

/M

Master-Umgebung

/U

Benutzer

/P

Pause oder Eingabeaufforderung

/V

Flüchtig

/O

Nicht überschreiben

/X

VariableExcludeaußer Kraft setzen

/Q

Echo nicht ausgeben /A Ergebnis



 

Siehe auch: ESET und UNSET.

 

Syntax der Dateivervollständigung:

 

Die Standard-Syntax für die Vervollständigung von Dateinamen lautet: [/r] * [1] Variablen [2*] *

 

Verwendung:

 

Jedes Programm und jeder Befehl erbt eine Umgebung, die eine Liste von Paaren von Variablennamen und -werten ist .  Jeder Wert ist eine nicht leere Zeichenkette (d.h. er muss mindestens ein Zeichen enthalten). Viele Programme verwenden Einträge in der Umgebung, um ihre eigenen Aktionen zu ändern. TCC selbst verwendet mehrere Umgebungsvariablen.

 

Wenn Sie einfach den SET-Befehl ohne Optionen oder Parameter eingeben, werden alle Namen und Werte aller derzeit definierten Variablen in der Umgebung angezeigt. Normalerweise sehen Sie einen Eintrag namens PATH, einen Eintrag namens CMDLINE und alle anderen Umgebungsvariablen, die Sie und Ihre Programme festgelegt haben:

 

[c:\] set

PATH=C:\;C:\UTIL

CMDLINE=C:\TCMD\TCSTART.CMD

 

Wenn Sie nur name eingeben  und es keine Variable mit diesem Namen gibt, zeigt SET alle Umgebungsvariablen an, deren Namen mit name beginnen .  Wenn es zum Beispiel keine Variable pa gibt, zeigt der folgende Befehl alle Variablen an, deren Namen mit pa beginnen:

 

set pa

 

Der obige Befehl ist äquivalent zu dem Befehl

 

set pa*

 

Wenn es nur einen einzigen Parameter gibt und dieser einen oder mehrere Platzhalterenthält(leider nur * verfügbar), zeigt SET alle passenden Umgebungsvariablen an. Sie können keine Platzhalter verwenden, um die Registrierungsvariablen (/D, /S, /U und /V)anzuzeigen.

 

Mit der VariableExclude-Variable können Sie Variablen angeben, die von der SET-Anzeige ausgeschlossen werden sollen. So können Sie beispielsweise die Anzeige der Prozessor- und Benutzervariablen unterdrücken:

 

set VariableExclude=proc*;user*

 

(Beachten Sie, dass diese Option keinen Einfluss auf das Vorhandensein der Variablen hat, sondern nur darauf, ob sie von einem SET ohne Argumente angezeigt werden).

 

Um eine Variable zur Umgebung hinzuzufügen, geben Sie SET, ein Leerzeichen, den Variablennamen, ein Gleichheitszeichen und den gewünschten Wert ein:

 

set mine=c:\finance\myfiles

 

Der Variablenname und der Text nach dem Gleichheitszeichen werden so belassen, wie Sie sie eingegeben haben. Bei der Suche nach einer Variablen wird die Groß- und Kleinschreibung jedoch ignoriert; zum Beispiel  verweisen MyVar, myvar und MYVAR alle auf dieselbe Variable. Wenn die Variable bereits existiert, wird ihr Wert durch den neuen Text ersetzt, den Sie eingegeben haben.

 

Normalerweise sollten Sie kein Leerzeichen vor oder hinter das Gleichheitszeichen setzen. Ein Leerzeichen vor dem Gleichheitszeichen wird Teil des Namens; ein Leerzeichen nach dem Gleichheitszeichen wird Teil des Wertes.

 

Nachfolgende Leerzeichen im SET-Befehl werden ignoriert. Um eine Variable mit abschließenden Leerzeichen zu erstellen, verwenden Sie ein Paar Anführungszeichen nach dem Leerzeichen:

 

set mine=%@repeat[ ,20]``

 

macht meine 20 Zeichen Leerzeichen.

 

Wenn Sie SET verwenden, um eine Variable mit dem gleichen Namen wie eine der TCC internen Variablen erstellen, deaktivieren Sie die interne Variable. Wenn Sie später eine Batch-Datei oder einen Alias ausführen, die bzw. der von dieser internen Variable abhängt, funktioniert sie möglicherweise nicht richtig. Sobald Sie Ihre Variable löschen, wird die interne Variable wieder zugänglich.

 

Um den Inhalt einer Variablen anzuzeigen, geben Sie SET und den Variablennamen ein:

 

set mine

 

Sie können Umgebungsvariablen mit dem  ESET-Befehl bearbeiten .  Um Variablen aus der Umgebung zu entfernen, verwenden Sie UNSET, oder geben Sie SET ein, gefolgt vom Variablennamen und einem Gleichheitszeichen:

 

set mine=

 

DerNameder Variablen  ist auf maximal 1024 Zeichen begrenzt.

 

Hinweis: Sie können SET nicht verwenden, um GOSUB-Variablen zu ändern .

 

Die Größe der Umgebung wird automatisch festgelegt und bei Bedarf erhöht, wenn Sie Variablen hinzufügen.

 

Registry-Variablen

 

Windows speichert einige seiner eigenen Variablen in der Registrierung. Dazu gehören Standard-, System-, Benutzer- und flüchtige Variablen. Diese Variablen können mit den Optionen /D, /S, /U und /Vdes SET-Befehls manipuliert werden.  Um zum Beispiel den Inhalt der flüchtigen Variable clientname anzuzeigen , verwenden Sie:

 

set /v clientname

 

Beachten Sie, dass das Setzen einer Registrierungsvariable mit einer der Optionen /D, /S, /U oder /V die Variable in der lokalen Umgebung nicht setzt, es sei denn, Sie verwenden auch die  Option/E.

 

Benutzervariablen sind benutzerspezifisch, und flüchtige Variablen sind nur für die aktuelle Windows-Sitzung gültig. Seien Sie vorsichtig, wenn Sie Registrierungsvariablen direkt ändern, da sie für verschiedene Windows-Prozesse und -Anwendungen wichtig sein können.

 

Wenn die  Konfigurationsoption Umgebung bei Systemänderung aktualisieren eingestellt ist , TCC die Meldung WM_SETTINGCHANGE und aktualisiert die Umgebung anhand der Registrierungseinträge Benutzer, Flüchtig und System. Die Aktualisierung wird immer dann durchgeführt, wenn TCC die Eingabeaufforderung anzeigt (um zu verhindern, dass sich die Umgebung mitten in einem Befehl ändert).

 

Array-Variablen

 

Zusätzlich zu den Umgebungsvariablen wird SET auch verwendet, um Werte für Array-Variablen zusetzen .  Um beispielsweise ein 5-zeiliges und 10-spaltiges Array zu definieren, verwenden Sie zunächst SETARRAY:

 

setarray array1[5,10]

 

Um die Array-Werte (0-basiert) zu setzen, lautet die Syntax:

 

set array1[a[,b[,c[,d]]]

 

Zum Beispiel:

 

set array1[0,0]=Bob

set array1[0,1]=Bob's Job

 

Um die Array-Variable zu erweitern:

 

echo Name is %array[0,0] and job is %array1[0,1]

 

Optionen:

 

/=Zeigt das SET-Befehlsdialogfeld an, um Ihnen bei der Einstellung der Befehlszeilenoptionen zu helfen. Die Option /= kann an einer beliebigen Stelle in der Zeile stehen; zusätzliche Optionen setzen die entsprechenden Felder im Befehlsdialog.

 

/AWertet den arithmetischen Ausdruck rechts vom Gleichheitszeichen aus, stellt das Ergebnis in die Umgebung und zeigt es an. Zum Beispiel addiert dieser Befehl 2 und 2 und legt das Ergebnis in der Umgebungsvariablen VAR ab:

 

set /a var=2+2

 

/A interpretiert nicht numerische Zeichenfolgen  als Namen von Umgebungsvariablen, unabhängig davon, ob ihnen ein Prozentzeichen % vorangestellt ist oder nicht , und ersetzt sie durch die entsprechenden Werte.  Zum Beispiel setzt diese Sequenz Y auf 4:

 

set x=2

set /a y=x+2

 
Sie können @EVALverwenden , um dieselbe Aufgabe zu erfüllen; SET /A ist aus Gründen der Kompatibilität mit CMD enthalten . Im Gegensatz zu @EVALmüssen Sie bei SET /A die>> oder << Shift-Operatoren als Umleitungssymbole deaktivieren, indem Sie SETDOS /X-6 verwenden.

 

/BSetzt eine Batch-Variable (%1 - %n). Nur gültig, wenn TCC eine Batch-Datei ausführt. Die Batch-Variable %n muss bereits existieren.

 

/DErstellen/Ändern/Löschen einer  Standardvariable in der Registrierung (HKU\.DEFAULT\Environment).

 

/EWird zusammen mit einer der Optionen /D, /S, /U oder /Vverwendet , werden sowohl die Registrierungsvariable als auch die lokale Umgebungsvariable gesetzt.

 

/MWenn ein Variablenname angegeben wird, wird er beim Start in den ursprünglichen Wert geändert . TCC gestartet. Wenn kein Name angegeben ist, wird die gesamte Umgebung beim Startauf die ursprüngliche Umgebung zurückgesetzt . TCC gestartet.

 

/OVorhandene Werte nicht überschreiben (nur gültig in Kombination mit /R).

 

/PBei Verwendung ohne Variablennamen wird nach jeder Bildschirmseite auf das Drücken einer Taste gewartet, bevor die Anzeige fortgesetzt wird. Ihre Optionen an der Eingabeaufforderung werden unter Seiten- und Dateieingabeaufforderungen ausführlich erläutert .

 

Bei Verwendung mit einem Variablennamen und einer optionalen Eingabeaufforderung, z. B. set /p  myvar=Wert eingeben, wird das  CMD-Verhalten  emuliert  und die Eingabe eines Wertes für die Variable ermöglicht. Dies ist nur aus Kompatibilitätsgründen vorgesehen. Wenn Sie mehr Flexibilität wünschen, verwenden Sie die TCC  ESET- oder  INPUT-Befehle.

 

/QGibt das Ergebnis von /A nicht aus, wenn es in der Befehlszeile steht.

 

/RLiest Umgebungsvariablen aus einer Datei. Dies ist viel schneller als das Laden von Variablen aus einer Batch-Datei mit mehreren SET-Befehlen. Jeder Eintrag in der Datei muss in die Längenbegrenzung der Befehlszeile für TCC. Die Datei hat das gleiche Format wie die SET-Anzeige (d.h. Name=Wert), so dass SET /R als Eingabe eine Datei akzeptieren kann, die durch Umleitung der SET-Ausgabe erzeugt wurde. Die folgenden Befehle speichern zum Beispiel die Umgebungsvariablen in einer Datei und laden sie dann aus dieser Datei wieder:

 

set > varlist

set /r varlist

 

Sie können Variablen aus mehreren Dateien laden, indem Sie die Dateinamen nach dem /R einzeln auflisten.

 

Wenn Sie eine SET /R-Datei von Hand erstellen und einen Eintrag erstellen müssen, der sich über mehrere Zeilen in der Datei erstreckt, können Sie dies tun, indem Sie jede Zeile (außer der letzten) mit einem Escape-Zeichen abschließen . Sie können diese Methode jedoch nicht verwenden, um die maximale Länge der Befehlszeile zu überschreiten. Sie können auch Kommentarzeilen in die Datei einfügen, indem Sie jede Zeile mit einem Doppelpunkt : beginnen . Sie können auch andere Sonderzeichen verwenden, z. B. Leerzeichen am Ende der Zeile, Umleitungssymbole und Pipe-Symbole(<>|), ohne dass diese Zeichen durch Escape-Zeichen ersetzt werden müssen. Wenn Sie den Wert einer anderen Variablen in value referenzieren  (z. B.x=%path;c:\jpsoft), wird die Auswertung dieser Variablen (path im Beispiel) verschoben, bis zu einem späteren Zeitpunkt eine Befehlszeile die aktuelle Variable (x im Beispiel)  auswertet, so dass der Befehl echo %x den  zum Zeitpunkt der  Ausführung vonecho gültigenPfadanzeigt , unabhängig davon, welcher Pfad zum Zeitpunkt der ursprünglichen SET-Definition von x bestand .

 

Wenn Sie keinen Dateinamen angeben und die Eingabe umgeleitet wird,  liest SET /R von stdin.

 

/ROErstellen Sie eine schreibgeschützte Variable. Sobald Sie die Variable gesetzt haben, können Sie sie nicht mehr ändern oder zurücksetzen. Nur Umgebungsvariablen können schreibgeschützt sein, nicht aber Registry-Variablen oder Array-Variablen. Eine schreibgeschützte Variable wird automatisch von einem ENDLOCALexportiert .

 

/SErstellen/Ändern/Löschen einer  Systemvariable in der Registrierung (HKLM\System\CurrentControlSet\Control\Session Manager\Environment).

 

/T:type[: "regex"]Setzen Sie einen Variablentyp. Wenn Sie versuchen, die Variable auf einen nicht kompatiblen Typ zu setzen, gibt SET einen Fehler zurück. Die unterstützten Typen sind:

 

int (oder 1)Die Variable kann nur 0-9 enthalten
dec (oder 2)Die Variable kann nur 0-9, das Dezimalzeichen und das Tausendertrennzeichen enthalten
hex (oder 3)Die Variable darf nur die Zeichen 0-9 und A-F enthalten.
bool (oder 4)Die Variable kann nur 0 oder 1 enthalten
alpha (oder 5)Die Variable darf nur A-Z und a-z enthalten
alnum (oder 6)Die Variable darf nur A-Z, a-z und 0-9 enthalten
regex (oder 7)Die Variable muss dem angegebenen regulären Ausdruck entsprechen

 

/UErstellen/Ändern/Löschen einer  Benutzervariable in der Registrierung (HKCU\Environment).

 

/VErstellen/Ändern/Löschen einer flüchtigen Variable in der Registrierung (HKCU\Volatile Environment).

 

/XSetzen Sie die Variable VariableExcludeaußer Kraft  und zeigen Sie alle passenden Variablen an.