Zwei Prozentzeichen vor einer Variable in neue .bat Datei schreiben?
Hallo,
ich arbeite hier an einer Batchdatei, die ihre Inhalte in eine neue .bat Datei überträgt (die resultierende .bat Datei wird später auf verschiedenen Rechnern gestartet und muss dafür individualisiert werden).
Der Ausschnitt, um den es geht:
Das Resultat:
Was ich in der Zieldatei benötige, sind die doppelten Prozentzeichen vor dem A.
Wenn ich im Original jetzt allerdings 3 statt 2 Prozentzeichen verwende:
um die zwei Prozentzeichen zu erhalten, werden die beiden oberen Zeilen gar nicht mehr in die neue .bat Datei geschrieben.
Wie also bekomme ich ein doppeltes Prozentzeichen in der Zieldatei hin?
Tia,
Highend
ich arbeite hier an einer Batchdatei, die ihre Inhalte in eine neue .bat Datei überträgt (die resultierende .bat Datei wird später auf verschiedenen Rechnern gestartet und muss dafür individualisiert werden).
Der Ausschnitt, um den es geht:
ECHO FOR /F "delims=~" %%A IN ('ECHO %%username%%^> "%%temp%%\~%%username%%" ^& DIR /L /B "%%temp%%\~%%username%%"') DO (>> "%WorkingDir%\%username%.bat"
ECHO SET username=%%A>> "%WorkingDir%\%username%.bat"
ECHO DEL /Q ~%%username%%>> "%WorkingDir%\%username%.bat"
ECHO )>> "%WorkingDir%\%username%.bat"
Das Resultat:
FOR /F "delims=~" %A IN ('ECHO %username%> "%temp%\~%username%" & DIR /L /B "%temp%\~%username%"') DO (
SET username=%A
DEL /Q ~%username%
)
Was ich in der Zieldatei benötige, sind die doppelten Prozentzeichen vor dem A.
Wenn ich im Original jetzt allerdings 3 statt 2 Prozentzeichen verwende:
ECHO FOR /F "delims=~" %%%A IN ('ECHO %%username%%^> "%%temp%%\~%%username%%" ^& DIR /L /B "%%temp%%\~%%username%%"') DO (>> "%WorkingDir%\%username%.bat"
ECHO SET username=%%%A>> "%WorkingDir%\%username%.bat"
ECHO DEL /Q ~%%username%%>> "%WorkingDir%\%username%.bat"
ECHO )>> "%WorkingDir%\%username%.bat"
um die zwei Prozentzeichen zu erhalten, werden die beiden oberen Zeilen gar nicht mehr in die neue .bat Datei geschrieben.
Wie also bekomme ich ein doppeltes Prozentzeichen in der Zieldatei hin?
Tia,
Highend
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 161519
Url: https://administrator.de/contentid/161519
Ausgedruckt am: 16.11.2024 um 05:11 Uhr
9 Kommentare
Neuester Kommentar
Also
Ich glaube, das ist immernoch dein vorheriges Ergebnis, da du vergessen hast, die 2 Umleitungszeichen nach dem
Gruß
Snow
ECHO FOR /F "delims=~" ^%^%A IN ('ECHO %%username%%^> "%%temp%%\~%%username%%" ^& DIR /L /B "%%temp%%\~%%username%%"') DO (^>^> "%WorkingDir%\%username%.bat"
funktioniert bei mir wunderbar.Ich glaube, das ist immernoch dein vorheriges Ergebnis, da du vergessen hast, die 2 Umleitungszeichen nach dem
DO (
zu maskieren.Gruß
Snow
Tut mir leid Highend, aber dann liegt dein Fehler woanders.
Möglicherweise hier? Wörter in Echo verschwinden - werden gedreht
Gruß
Snow
Möglicherweise hier? Wörter in Echo verschwinden - werden gedreht
Gruß
Snow
Hallo,
@Snowman25:
Das Escapen von %-Zeichen klappt nicht mit ^, sondern ausschliesslich mit % (also Effektiv %% wie bastla schon geschrieben hat).
Das % ist übrigens das einzige Zeichen welches nicht auf ^ reagiert
Grüße
jeb
@Snowman25:
Das Escapen von %-Zeichen klappt nicht mit ^, sondern ausschliesslich mit % (also Effektiv %% wie bastla schon geschrieben hat).
Das % ist übrigens das einzige Zeichen welches nicht auf ^ reagiert
Grüße
jeb