iwolf2015
Goto Top

Batch - Variable in bestimmte Textzeile schreiben

Hallo, ich möchte gerne eine Variable in die n-te Zeile eines .txt Dokumentes schreiben.
Ich habe schon verschiedene Ansätze gefunden, aber keiner hat mir wirklich weitergeholfen.

Es würde mich freuen, wenn mir hier jemand helfen und (wenn irgendwie möglich) die verwendeten Befehle erklären kann (Bin Batch-Noob).

Content-Key: 280456

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

Printed on: April 24, 2024 at 13:04 o'clock

Member: Tezzla
Tezzla Aug 17, 2015 at 17:39:03 (UTC)
Goto Top
Hallo,

ein paar mehr Details wären hilfreich, damit man eventuell einen möglichen Ansatz leichter findet.
Was steht drin? Gleicher Aufbau?

Viele Grüße
T
Member: iWolf2015
iWolf2015 Aug 17, 2015 at 17:49:16 (UTC)
Goto Top
Ich möchte eine Batch-Datei eine Zeile in eine Textdatei hinzufügen lassen. Dies soll aber weder die erste, noch die letzte Zeile sein, sondern eine mittendrin.
Das Textdokument wird dann im späteren Verlauf in eine Batch-Datei umgewandelt, die dann mitsamt der neuen Zeile(n) ausgeführt werden soll. Der Aufbau des Textdokumentes ist daher nicht einheitlich: Zuerst kommen einige Variabel-abfragen und gegen Ende sind dort fast nur noch echo-Befehle drin.
Member: Endoro
Endoro Aug 17, 2015, updated at Aug 18, 2015 at 05:11:10 (UTC)
Goto Top
Hey,
in eine Textdatei kann Batch nicht reinschreiben, es muss eine neue angelegt werden. Das wären dann folgende Schritte:
1. Schreibe alle Zeilen vor der neuen Zeile in die Datei (zum Beispiel mit findstr /n "^")
2. Schreibe die neue Zeile mit echo
3. Schreibe die restlichen Zeilen (z.B. mit more +n, wenn die Datei kleiner als 2GB ist).

Ich würde das allerdings mit sed machen.
Beispiel:
sed -n 1,11p input.txt > output.txt
echo Meine neue Zeile >> output.txt
sed 1,11d input.txt >> output.txt
Gruss, Endoro
Member: iWolf2015
iWolf2015 Aug 23, 2015 at 18:35:28 (UTC)
Goto Top
Kannst du das mit findstr genauer erklären? Ich beginne gerade erst mit Batch und kenne den Befehl noch nicht ^^
In der CMD konnte mir findstr /? nicht wirklich weiterhelfen, würde mich freuen.