ripued

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.

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?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

Bitboy
Lösung Bitboy 28.11.2019 um 13:43:25 Uhr
Goto Top
Hi,

eigentlich mus es so klappen. Sicher, dass zwischen echo und %zt% nicht 2 Leerzeichen sind?

@echo OFF
set zt=4
echo %zt% >C:\Temp\test2.txt
pause

Grüße
141965
Lösung 141965 28.11.2019 aktualisiert um 13:51:50 Uhr
Goto Top
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
set "zt=4"  
>"C:\Test\test.txt" echo.%zt%  
pause
RIPUED
RIPUED 28.11.2019 um 13:53:52 Uhr
Goto Top
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?
141965
Lösung 141965 28.11.2019 aktualisiert um 14:07:27 Uhr
Goto Top
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!
RIPUED
RIPUED 28.11.2019 aktualisiert um 14:59:16 Uhr
Goto Top
OK, vielen Dank hierfür. Ab wann sollte ich den Teil wie bei dir in Anführungszeichen setzen, wo die Variable gesetzt wird?
141965
141965 28.11.2019 aktualisiert um 14:52:56 Uhr
Goto Top
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.
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.