bobafett64
Goto Top

Umleitung in file via echo ohne Leerzeichen am Ende

Hallo,

ich habe ein Problem in meinem batch file:

Ich möchte einen Test via echo Befehl in ein file umleiten. Zum Beispiel folgenden:

echo set path=%test% >> set.bat
echo set test2=%test3% >> set.bat

Mein Problem ist nun, das hinter "set path=%test%" im file "set.bat" ein Leerzeichen erstellt wird. Das bedeutet natürlich, das wenn ich mit dieser Variable %test% weiterarbeite, hinter dem Variablenname (in diesem Fall ein Verzeichnis) ein Leerzeichen existiert, was Probleme bereitet.

Wie kann ich mit dem Echo Befehle mehrere Zeichenfolgen in ein file umleiten, ohne das er am Ende jeder Zeile ein Leerzeichen anhängt?

Vielen Dank schonmal!

MfG,
BobaFett64

Content-ID: 41330

Url: https://administrator.de/forum/umleitung-in-file-via-echo-ohne-leerzeichen-am-ende-41330.html

Ausgedruckt am: 17.04.2025 um 04:04 Uhr

Biber
Biber 03.10.2006 um 12:50:28 Uhr
Goto Top
Moin BobaFett64,

das Leerzeichen am Ende kommt daher, dass Du es vor den ">>"-Zeichen angegeben hast.
echo set path=%test%>>set.bat
echo set test2=%test3%>>set.bat

So sollte es weg sein.

Gruß
Biber
BobaFett64
BobaFett64 03.10.2006 um 13:16:43 Uhr
Goto Top
Hallo Biber,

natürlich!! Was für ein Denkfehler von mir!

Danke!

MfG,
BobaFett64
Biber
Biber 03.10.2006 um 14:14:58 Uhr
Goto Top
Noch eine Fussnote dazu, BobaFett64,

auch wenn es M$ nicht wirklich dokumentiert hat: Du kannst diese wirklichen lumpigen Fehler mit "ungewollten Leerzeichen am Ende von Variablen" auch dadurch vermeiden, dass Du die SET-Anweisung durch Anführungszeichen einschließt.
Dann brauchst Du nicht ganz so diszipliniert sein mit den Leerzeichen vor den Pipe-Symbolen.
Beispiel:
set "myvar=137" >> testset.bat  
ist gleich bedeutend mit
set "myvar=137">>testset.bat  
-und auch gleich mit
set myvar=137>>testset.bat

Und Du kannst innerhalb der Anführungszeichen auch Text-in-Anführungszeichen schreiben (Test am CMD-Prompt):
> echo set "path2="whatever mit Leerzeichen"" > temp.bat  
>temp.bat
>set "path2="whatever mit Leerzeichen""  
>set path2
path2="whatever mit Leerzeichen"  

Gruß
Biber