Zweck: | Stellen Sie das gespeicherte Laufwerk, Verzeichnis, die Umgebung, lokale Alias- und Funktionslisten sowie Sonderzeichen wieder her und exportieren Sie ausgewählte Variablen |
Format: | ENDLOCAL [/D /P] [Exportvar ...] |
/P (Verzeichnisstapel wiederherstellen)
Siehe auch: SETLOCAL.
Verwendung:
Der SETLOCAL Der Befehl speichert das aktuelle Festplattenlaufwerk, das Standardverzeichnis, alle Umgebungsvariablen, die Alias- und Funktionslisten, den Verzeichnisstapel (PUSHD) sowie das Befehlstrennzeichen, das Escape-Zeichen, das Parameterzeichen, das Dezimaltrennzeichen und das Tausendertrennzeichen. Die benutzerdefinierten Funktionslisten oder Array-Variablen werden nicht gespeichert. ENDLOCAL stellt alles wieder her, was zuvor gespeichert wurde SETLOCAL Befehl, außer wie unten beschrieben.
Wenn Sie nur globale Aliase und/oder Funktionen haben, kopiert SETLOCAL diese für die Dauer von SETLOCAL in eine lokale Liste. Der passende ENDLOCAL setzt sie auf die globale Liste zurück. Wenn Sie sowohl lokale als auch globale Aliase oder Funktionen haben, stellt ENDLOCAL nur die lokale Liste wieder her (die von SETLOCAL gespeichert wurde).
Dieses Batchdateifragment speichert beispielsweise alles, entfernt alle Aliase, sodass Benutzeraliase keine Auswirkungen auf Batchdateibefehle haben, ändert die Festplatte und das Verzeichnis, ändert das Befehlstrennzeichen, führt ein Programm aus und stellt dann die ursprünglichen Werte wieder her:
setlocal
Unalias *
cdd d:\test
setdos /c~
program ~ echo Fertig!
endlocal
SETLOCAL / ENDLOCAL kann in einer einzelnen Batchdatei mit einer Tiefe von bis zu 32 Ebenen verschachtelt werden. Sie können auch mehrere, getrennte haben SETLOCAL / ENDLOCAL-Paare innerhalb einer Batchdatei und verschachtelte Batchdateien können jeweils ihre eigenen haben SETLOCAL / ENDLOKAL. Wenn Sie in der Batchdatei kein ENDLOCAL angeben, TCC Dies geschieht automatisch, wenn die Batchdatei beendet wird.
Sie können auch SETLOCAL und ENDLOCAL in einem Alias, einer Bibliotheksfunktion oder in der Befehlszeile. Die maximale Verschachtelungsebene über eine Befehlszeile oder einen Alias beträgt 32 Ebenen. Im Gegensatz zu Batchdateien sind Sie für den Abgleich verantwortlich SETLOCAL / ENDLOCAL-Aufrufe von einem Alias oder einer Befehlszeile; TCC führt keinen automatischen ENDLOCAL durch.
Ein ENDLOCAL wird automatisch am Ende einer Batchdatei oder bei der Rückkehr von einem „GOSUB Dateiname". Wenn Sie eine Batchdatei aus einer anderen aufrufen, ohne sie zu verwenden Anrufen, wird die erste Batchdatei beendet und ein automatischer ENDLOCAL durchgeführt; Die zweite Batchdatei übernimmt die Einstellungen wie zuvor SETLOCAL.
•Umgebungsvariablen exportieren
Die Umgebungsvariablen, deren Namen im ENDLOCAL-Befehl angegeben sind, werden exportiert. Dies bedeutet, dass ihre Namen und Werte aus dem Inneren stammen SETLOCAL / ENDLOCAL wird in die wiederhergestellte Umgebung eingefügt, wobei entweder Variablen hinzugefügt oder möglicherweise geändert werden. Im folgenden Beispiel hat die Variable TEST den Wert abcd nachdem ENDLOCAL ausgeführt wurde, unabhängig von seinem Wert oder auch wenn er zuvor nicht definiert wurde:
setlocal
setze test=abcd
endlokaler Test
Die Liste der zu exportierenden Variablen kann Platzhalter enthalten. Alle Variablen, die dem angeforderten Muster entsprechen, werden exportiert.
•Aktuelles Arbeitsverzeichnis exportieren
Siehe Option /D unten mit.
ENDLOCAL stellt den CWD für Laufwerke wieder her, die vom SETLOCAL Option /D.
Option:
/D | (Verzeichnis nicht wiederherstellen) Exportieren Sie das aktuelle Verzeichnis: das ursprüngliche Laufwerk und Verzeichnis, das von gespeichert wurde SETLOCAL werden wir nicht wiederhergestellt werden. |
/P | Stellt den von SETLOCAL gespeicherten DIRS-/PUSHD-/POPD-Verzeichnisstapel wieder her. Standardmäßig stellt ENDLOCAL den Verzeichnisstapel aus Kompatibilitätsgründen mit CMD nicht wieder her. |