Variable mit Zahl in Text-Datei umleiten - fehlerhaftes Leerzeichen?
Hallo, ich würde gerne eine Variable, welche zuvor in einem komplexeren Skript mit einer einstelligen Zahl gesetzt wird, in eine Text-Datei umleiten.
Leider wird dabei aus mir nicht ersichtlichen Gründen ein Leerzeichen gesetzt, so dass für eine 4 " 4" umgeleitet wird und ich die Fehlermeldung bzw. Hinweis erhalte, dass Echo eingeschaltet sei.
Die erste Umleitung mit einem Punkt hinter Echo scheint zwar zu funktionieren, allerdings sieht das was man bei der Ausführung sieht, dennoch unheimlich aus: echo.41>C:\Temp\teste2.txt
Irgendwie fügt der noch eine 1 hinzu, vermutlich ist für den Standard-Output sowie die 2 für die Error-Ausgabe wäre.
Was wäre eine saubere Lösung, um diese Variable mit Zahl vernünftig umzuleiten?
Leider wird dabei aus mir nicht ersichtlichen Gründen ein Leerzeichen gesetzt, so dass für eine 4 " 4" umgeleitet wird und ich die Fehlermeldung bzw. Hinweis erhalte, dass Echo eingeschaltet sei.
set zt=4
echo.%zt%>C:\Test\test.txt
echo %zt%>C:\Test\test2.txt
pause
Die erste Umleitung mit einem Punkt hinter Echo scheint zwar zu funktionieren, allerdings sieht das was man bei der Ausführung sieht, dennoch unheimlich aus: echo.41>C:\Temp\teste2.txt
Irgendwie fügt der noch eine 1 hinzu, vermutlich ist für den Standard-Output sowie die 2 für die Error-Ausgabe wäre.
Was wäre eine saubere Lösung, um diese Variable mit Zahl vernünftig umzuleiten?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 519944
Url: https://administrator.de/forum/variable-mit-zahl-in-text-datei-umleiten-fehlerhaftes-leerzeichen-519944.html
Ausgedruckt am: 17.05.2025 um 21:05 Uhr
6 Kommentare
Neuester Kommentar

Umleitungen sollte man best practice bei unbekannten Daten immer vor die Ausgabe schreiben denn Zahlen direkt vor der Umleitung führen dazu das Batch denkt man wollte z.B. bei einer 2 StdErr oder eben einen anderen Kanal umleiten
https://www.robvanderwoude.com/redirection.php
https://www.robvanderwoude.com/redirection.php
set "zt=4"
>"C:\Test\test.txt" echo.%zt%
pause

Zitat von @RIPUED:
Tatsächlich geht es mit deinem Skript, wenn man vor dem > Zeichen das Leerzeichen nicht herausnimmt. In der Text-Datei wird zwar hinter der 4 ein Leerzeichen gesetzt, aber das macht erstmal nichts.
Aber warum funktioniert es nur so? Sollte man standardmäßig immer ein Leerzeichen vor > setzen?
Lies meinen Hinweis dazu oben. Ein Leerzeichen vor der Ausgabeumleitung ist im Normalfall nicht erforderlich, aber wenn direkt vor der Umleitung Zahlen stehen denkt die Batch das die einen Kanal umleiten soll, deswegen die Umleitung gleich besser vor die Ausgabe schreiben, dann gibt es solche Probleme erst gar nicht!Tatsächlich geht es mit deinem Skript, wenn man vor dem > Zeichen das Leerzeichen nicht herausnimmt. In der Text-Datei wird zwar hinter der 4 ein Leerzeichen gesetzt, aber das macht erstmal nichts.
Aber warum funktioniert es nur so? Sollte man standardmäßig immer ein Leerzeichen vor > setzen?

Zitat von @RIPUED:
OK, vielen Dank hierfür. Ab wann sollte ich den Teil wie bei dir in Anführungszeichen setzen, wo die Variable gesetzt wird.
Bei Leerzeichen in Pfaden, Sonderzeichen, etc.OK, vielen Dank hierfür. Ab wann sollte ich den Teil wie bei dir in Anführungszeichen setzen, wo die Variable gesetzt wird.
Ich mach das grundsätzlich wenn nicht weiß was an Daten da rein kommt, schon ein rein gerutschtes Leerzeichen am Ende der Zeile kann ohne schon Kopfschmerzen bereiten weil man es nicht gleich sieht, so ist das eindeutig.