Methode 1: verzögerte Erweiterung
Eine Möglichkeit, das zu tun, was Sie möchten, ist die Verwendung der verzögerten Erweiterung, bei der Sonderzeichen übrig bleiben .
Bei einer verzögerten Erweiterung werden Variablen in einer Batchdatei nicht zur Analysezeit, sondern zur Ausführungszeit erweitert. Diese Option wird mit dem Befehl SETLOCAL EnableDelayedExpansion aktiviert.
:top Echo Enter Message set /p msg=">" if "%msg%"=="C" goto cancel setlocal EnableDelayedExpansion echo !msg! >> File.txt endlocal goto top :cancel
Wie Sie sehen können, müssen Sie !msg!
anstelle von verwenden %msg%
.
Methode 2: Zitate
Wenn Sie die Variable in Anführungszeichen setzen, bleiben auch Sonderzeichen übrig, mit dem Nebeneffekt, dass diese Anführungszeichen auch in Ihre Ausgabe übernommen werden.
:top Echo Enter Message set /p msg=">" if "%msg%"=="C" goto cancel echo "%msg%" >> File.txt goto top :cancel