Setlocal enabledelayedexpansion und Sonderzeichen (z.B. !-Zeichen)
Hallo Zusammen,
ich bin mir sicher, dass dieses Thema schon öfters angesprochen wurde. Leider finde ich hierzu aber nichts.
Wenn in einer Batch die Zeile setlocal enabledelayedexpansion zum Einsatz kommt, werden keine Sonderzeichen wie z.B. "!" mehr angenommen.
Ich lese aus einer TXT Datei Benutzer und Kennwörter ein. Leider werden diverse Sonderzeichen in den Kennwörtern abgeschnitten.
Gibt es hierfür eine Lösung? CHCP 1252 funktioniert an dieser Stelle auch nicht mehr.
ich bin mir sicher, dass dieses Thema schon öfters angesprochen wurde. Leider finde ich hierzu aber nichts.
Wenn in einer Batch die Zeile setlocal enabledelayedexpansion zum Einsatz kommt, werden keine Sonderzeichen wie z.B. "!" mehr angenommen.
Ich lese aus einer TXT Datei Benutzer und Kennwörter ein. Leider werden diverse Sonderzeichen in den Kennwörtern abgeschnitten.
Gibt es hierfür eine Lösung? CHCP 1252 funktioniert an dieser Stelle auch nicht mehr.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287977
Url: https://administrator.de/forum/setlocal-enabledelayedexpansion-und-sonderzeichen-z-b-zeichen-287977.html
Ausgedruckt am: 05.04.2025 um 20:04 Uhr
2 Kommentare
Neuester Kommentar
Hey,
wenn delayed expansion, die verzögerte Erweiterung von Variablen eingeschaltet wurde, werden die Ausrufezeichen zur Kennzeichnung von Variablen verwendet. Das macht das Einlesen dieser Zeichen in eine Variable kompliziert.
Eine Methode wäre, das Ausrufezeichen vor dem Einlesen zu schützen:
Eine andere Methode ist, die verzögerte Erweiterung erst nach dem Einlesen der Ausrufezeichen einzuschalten:
Und drittens ist es oft möglich, auf die verzögerte Erweiterung oder die Verwendung von Ausrufezeichen zu verzichten. Was auf den Einzelfall ankommt. In diesem Beitrag kannst du was zur Variablenerweiterung nachlesen.
Gruß, Endoro
wenn delayed expansion, die verzögerte Erweiterung von Variablen eingeschaltet wurde, werden die Ausrufezeichen zur Kennzeichnung von Variablen verwendet. Das macht das Einlesen dieser Zeichen in eine Variable kompliziert.
Eine Methode wäre, das Ausrufezeichen vor dem Einlesen zu schützen:
@echo off
setlocal enabledelayedexpansion
set "var=^!"
echo !var!
Eine andere Methode ist, die verzögerte Erweiterung erst nach dem Einlesen der Ausrufezeichen einzuschalten:
@echo off &setlocal disabledelayedexpansion
set "var=!"
setlocal enabledelayedexpansion
echo !var!
Und drittens ist es oft möglich, auf die verzögerte Erweiterung oder die Verwendung von Ausrufezeichen zu verzichten. Was auf den Einzelfall ankommt. In diesem Beitrag kannst du was zur Variablenerweiterung nachlesen.
Gruß, Endoro