Hinzufügen einer Zeile Settings(gleich)1 an eine TXT-Datei aus Batch
Ein freundliches Hallo ins Forum.
Ich habe ein Problem(chen) welches ich mir nicht erklären kann. Wahrscheinlich für die Cracks hier kein Thema, aber ich stehe im Moment auf dem Schlauch. Die Suche hier und im Internet hat mich nicht weitergebracht.
Folgendes:
Ich muss aus einer Batchdatei einen Eintrag Settings=1 an eine bestehende TXT-Datei anhängen.
Aktuell versuche ich das mit dem Befehl echo Settings=1>>datei.txt
Dabei wird allerdings nur Settings= in die Datei geschrieben, die 1 wird unterschlagen.
Füge ich ein Leerzeichen hinter der 1 ein ( echo Settings=1 >>datei.txt ) funktioniert es. Jetzt habe ich aber ein zusätzliches Leerzeichen in der Zeile.
Kann man das irgendwie anders / besser lösen? Und kann mir jemand erklären warum das so ist? Bin für jeden Tipp dankbar.
VG aus Bocholt
Markus
Ich habe ein Problem(chen) welches ich mir nicht erklären kann. Wahrscheinlich für die Cracks hier kein Thema, aber ich stehe im Moment auf dem Schlauch. Die Suche hier und im Internet hat mich nicht weitergebracht.
Folgendes:
Ich muss aus einer Batchdatei einen Eintrag Settings=1 an eine bestehende TXT-Datei anhängen.
Aktuell versuche ich das mit dem Befehl echo Settings=1>>datei.txt
Dabei wird allerdings nur Settings= in die Datei geschrieben, die 1 wird unterschlagen.
Füge ich ein Leerzeichen hinter der 1 ein ( echo Settings=1 >>datei.txt ) funktioniert es. Jetzt habe ich aber ein zusätzliches Leerzeichen in der Zeile.
Kann man das irgendwie anders / besser lösen? Und kann mir jemand erklären warum das so ist? Bin für jeden Tipp dankbar.
VG aus Bocholt
Markus
Please also mark the comments that contributed to the solution of the article
Content-Key: 2639547691
Url: https://administrator.de/contentid/2639547691
Printed on: May 18, 2024 at 06:05 o'clock
3 Comments
Latest comment
Servus Markus!
Das kommt deswegen weil man mit einer Zahl direkt vor dem Redirector(>) festlegt welcher Stream (StdOut(1)/StdErr(2)) wohin geschrieben werden soll. Bei 1> interpretiert Batch die 1 als "Stdout" und schreibt sie deswegen nicht mit in die Textdatei.
Best Practice ist deswegen auch den Redirect immer vor dem echo zu scheiben und nicht dahinter wenn man den Inhalt vom echo nicht kennt:
Wenn man das Echo trotzdem dahinter schreiben möchte ist das aber ebenfalls über ein Escaping der Nummer möglich
Dazu auch lesenswert
https://www.robvanderwoude.com/battech_redirection.php
Grüße Uwe
Das kommt deswegen weil man mit einer Zahl direkt vor dem Redirector(>) festlegt welcher Stream (StdOut(1)/StdErr(2)) wohin geschrieben werden soll. Bei 1> interpretiert Batch die 1 als "Stdout" und schreibt sie deswegen nicht mit in die Textdatei.
Best Practice ist deswegen auch den Redirect immer vor dem echo zu scheiben und nicht dahinter wenn man den Inhalt vom echo nicht kennt:
>>datei.txt echo Settings=1
echo Settings=^1>>datei.txt
Dazu auch lesenswert
https://www.robvanderwoude.com/battech_redirection.php
Grüße Uwe
Immer gerne 👍
Eventuell noch als Anregung langsam aber sicher ans Umsteigen zu denken:
Powershell Leitfaden für Anfänger
Eventuell noch als Anregung langsam aber sicher ans Umsteigen zu denken:
Powershell Leitfaden für Anfänger