| Zweck: | Speichern einer Kopie des aktuellen Laufwerks, Verzeichnisses, der Umgebung, der Alias- und Funktionslisten sowie der Sonderzeichen |
| Format: | SETLOCAL [GLOBALLISTS] |
| GLOBALLISTS | Globale Aliase / Benutzervariablenfunktionen |
Siehe auch: ENDLOCAL.
Verwendung:
SETLOCAL kann auf der Kommandozeile, in Aliasen, in Bibliotheksfunktionen und in Batch-Dateien verwendet werden.
SETLOCAL speichert :
•das Standardlaufwerk und -verzeichnis
•die Umgebung,
•die Alias-Liste
•die Liste der benutzerdefinierten Funktionen
•den Verzeichnisstapel (PUSHD)
•den Sonderzeichensatz (Befehlstrennzeichen, Escape-Zeichen, Parameterzeichen, Dezimaltrennzeichen und Tausendertrennzeichen)
•die SETDOS /X-Einstellung
•die Einstellung SETDOS /F
Nach der Verwendung von SETLOCAL können Sie die Werte einer oder aller der oben genannten Einstellungen ändern und später die ursprünglichen Werte mit einem ENDLOCAL-Befehl oder einfach durch Beenden der Batch-Dateiwiederherstellen .
SETLOCAL speichert nicht die Befehlshistorie oder Array-Variablen.
Wenn Sie globale Aliase und/oder Funktionen haben, kopiert SETLOCAL diese nun für die Dauer des SETLOCAL-Befehls in eine lokale Liste. Das passende ENDLOCAL setzt sie auf die globale Liste zurück. Wenn Sie sowohl lokale als auch globale Aliase oder Funktionen definiert haben, speichert SETLOCAL nur die lokale Liste (die dann durch ENDLOCAL wiederhergestellt wird).
SETLOCAL unterstützt die Argumente EnableExtensions, DisableExtensions, EnableDelayedExpansion und DisableDelayedExpansion von CMD. (Obwohl sie nicht notwendig sind, da TCC entweder standardmäßig oder durch den Befehl OPTION gesetzt werden.)
Dieses Stapeldateifragment speichert zum Beispiel alles, entfernt alle Aliase, so dass Aliase die Stapeldateibefehle nicht beeinflussen, ä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 Done!
endlocal
SETLOCAL und ENDLOCAL können in jeder Batchdatei bis zu 32 Ebenen tief verschachtelt werden. Sie können auch mehrere SETLOCAL / ENDLOCAL-Paare innerhalb einer Batch-Datei haben , und verschachtelte Batch-Dateien können jeweils ihre eigenen SETLOCAL / ENDLOCAL-Paare haben .
SETLOCAL setzt die Konfigurationsoption Lokale Aliase nicht außer Kraft . Folglich wirkt sich die Änderung von Aliasen innerhalb eines SETLOCAL / ENDLOCAL-Paares auf die Definition von Aliasen anderer, gleichzeitig ausgeführter Sitzungen von TCC.
Sie können SETLOCAL und ENDLOCAL auch in einem Alias oder in der Befehlszeile verwenden . Die maximale Verschachtelungsebene in einer Befehlszeile oder einem Alias beträgt 32 Ebenen. Im Gegensatz zu Batchdateien sind Sie für den Abgleich der SETLOCAL-/ENDLOCAL-Aufrufe in einem Alias oder einer Befehl szeile verantwortlich ; TCC führt nicht automatisch ein ENDLOCAL durch.
Ein ENDLOCAL wird automatisch am Ende einer Batch-Datei oder bei der Rückkehr von einem "GOSUB Dateiname" durchgeführt. Wenn Sie eine Stapeldatei von einer anderen aus aufrufen, ohne CALL zu verwenden , wird die erste Stapeldatei beendet und ein automatisches ENDLOCAL durchgeführt; die zweite Stapeldatei übernimmt die Einstellungen, wie sie vor einem SETLOCAL waren.
Sie können geänderte Variablen innerhalb eines SETLOCAL / ENDLOCAL-Blocks "exportieren". Siehe ENDLOCAL für Details.
Optionen:
| GLOBALLISTS | Verhindern Sie, dass SETLOCAL während der SETLOCAL-Dauer auf lokale Alias- und benutzerdefinierte Variablen-Funktionslisten umschaltet. |