Liste der Windows-eigenen Kommandos
setlocal
BefehlKurzbeschreibung
Syntax
Beispiele
Sonderzeichen ersetzen
Befehl | setlocal |
Kurzbeschreibung | Startet die Begrenzung des Gültigkeitsbereiches von Änderungen. |
Syntax | Hinweis: Dies ist ein internes Kommando. Kommando zum Anzeigen der Hilfe: setlocal /? Startet die Begrenzung des Gültigkeitsbereiches von Änderungen. Änderungen der Umgebung nach SETLOCAL sind nur auf die Batchdatei bezogen. Um die ursprünglichen Einstellungen wiederherzustellen, muss der Befehl ENDLOCAL ausgeführt werden. Beim Erreichen des Endes einer Batchdatei wird ein impliziertes ENDLOCAL für jegliche ausstehende SETLOCAL-Befehle ausgeführt. SETLOCAL Mit den Befehlserweiterungen wird der SETLOCAL-Befehl folgendermaßen verändert: ENABLEEXTENSIONS / DISABLEEXTENSIONS Aktiviert bzw. deaktiviert Befehlserweiterungen. Geben Sie CMD /? ein, um weitere Informationen zu erhalten. ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION Aktiviert bzw. deaktiviert die verzögerte Erweiterung von Umgebungsvariablen. Geben Sie SET /? ein, um weitere Informationen zu erhalten. Diese Änderungen sind bis zum nächsten ENDLOCAL-Befehl gültig, und zwar unabhängig von vorherigen Einstellungen. Der SETLOCAL-Befehl legt einen ERRORLEVEL fest, wenn ein Argument angegeben wird. Dieser ist gleich Null für eines der beiden gültigen Argumente und gleich Eins andernfalls. Das kann man in Batchprogrammen verwenden, um festzustellen, ob die Befehlserweiterungen zur Verfügung stehen. Siehe dazu auch folgendes Beispiel: VERIFY OTHER 2>nul SETLOCAL ENABLEEXTENSIONS IF ERRORLEVEL 1 echo keine Befehlserweiterungen Dieses Verfahren kann man verwenden, weil in älteren Versionen von CMD.EXE der SETLOCAL-Befehl keinen ERRORLEVEL festlegt. Der VERIFY-Befehl mit einem ungültigen Argument initialisiert den Wert für den ERRORLEVEL mit ungleich Null. |
Beispiele |
Sonderzeichen ersetzenFür eine Batchdatei, die Screenshots von Webseiten erstellt, habe ich den Ausgabedateinamen anhand der URL erzeugt. Dabei muss man für Dateinamen ungültige Zeichen aus der URL bereinigen - ich habe sie wie folgt durch einen Unterstrich erstetzt: Eine Variable search nimmt alle Sonderzeichen auf, die ersetzt werden sollen. Über diese Liste von Zeichen wird mit einer For-Schleife geloopt und die Variable mit dem Dateinamen der Ausgabedatei myfile zeichzenweise ersetzt.(...) :: Ausgabeverzeichnis set outdir=... (...) :capture set "myurl=%~1" set "myfile=%~1" SETLOCAL EnableDelayedExpansion SET "search=: / . ? & = % " for %%s in (!search!) do ( SET "myfile=!myfile:%%~s=_!" ) set myfile=%myfile%.png :: Bildschirmfoto erstellen IECapt --url="%myurl%" --out="%outdir%\%myfile%" --min-width=1200 --max-wait=5000 s.a. » set |