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-Key: 41330

Url: https://administrator.de/contentid/41330

Printed on: April 26, 2024 at 06:04 o'clock

Member: Biber
Biber Oct 03, 2006 at 10:50:28 (UTC)
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
Member: BobaFett64
BobaFett64 Oct 03, 2006 at 11:16:43 (UTC)
Goto Top
Hallo Biber,

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

Danke!

MfG,
BobaFett64
Member: Biber
Biber Oct 03, 2006 at 12:14:58 (UTC)
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