pdiddo
Goto Top

Per Batch in ausgewählte oder vorgeschriebene Zeile einer .txt schreiben

Morgen Leute,

vor lauter Bäumen sehe ich den Wald nicht mehr.

Ich möchte, dass meine 1.bat in die erste Zeile der A.txt einen Text schreibt.

Danach sollte 2.bat in die zweite Zeile der A.txt einen Text schreiben.

und so weiter...

Am Ende sollten dann alle Einträge (von 1.bat und 2.bat usw.) in der A.txt vorhanden sein.


Wie bekomme ich das am einfachsten hin!


Liebe Grüße!

Content-ID: 333626

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

Ausgedruckt am: 26.11.2024 um 01:11 Uhr

Pjordorf
Pjordorf 30.03.2017 um 10:10:19 Uhr
Goto Top
Hallo,

Zitat von @pdiddo:
Ich möchte, dass meine 1.bat in die erste Zeile der A.txt einen Text schreibt.
Deine Zeile in einer neuen Textdatei und dahinter den Inhalt der vorhandenen Datei A kopieren.

Wie bekomme ich das am einfachsten hin!
Was hast du schon auf dem wir hier aufbauen können?
Darf es auch Powershell oder VBS sein oder muss es zwingend in Batch sein?

Gru0,
Peter
pdiddo
pdiddo 30.03.2017 aktualisiert um 10:22:23 Uhr
Goto Top
1.bat soll in die erste Zeile der bereits vorhandenen A.txt schreiben.
2.bat soll in die zweite Zeile der bereits vorhandenen A.txt schreiben.
3.bat soll in die dritte Zeile der bereits vorhandenen A.txt schreiben.

Bisher habe ich nur

1.bat
Hallo das muss in die erste Zeile > A.txt

2.bat
Hallo das ist für die zweite Zeile > A.text

Problem ist, wenn ich beide hintereinander ausführe steht immer nur der Text aus 2.bat in der ersten Zeile.

Wenn ich jetzt in A.txt
Sehr geehrte Damen und Herren,

"nach ausführen der 2.bat sollte hier der Text aus 2.bat stehen  

MfG...


Sollte schon Batch sein.

Liebe Grüße!
132692
Lösung 132692 30.03.2017 aktualisiert um 12:49:41 Uhr
Goto Top
Mach einfach eine eckige Klammer mehr in deiner 2ten und folgenden BATs am Ende face-smile
echo Hallo das muss in die zweite Zeile >>a.txt
Gruß p.
Pjordorf
Lösung Pjordorf 30.03.2017 um 10:40:12 Uhr
Goto Top
Hallo,

Zitat von @pdiddo:
Problem ist, wenn ich beide hintereinander ausführe steht immer nur der Text aus 2.bat in der ersten Zeile.
Klar und auch logisch. Das macht genau das was du willst. face-smile Mag zwar nicht das sein was du haben willst, aber es tut was es soll. face-smile
Dein
Hallo das ist für die zweite Zeile > A.text
sagt ja das der Text "Hallo das ist für die zweite Zeile" in einer Datei mit Namen A.text kopiert werden soll. Der vorhanden Inhalt von A.Text soll überschrieben werden. Nimm mal eine
Hallo das ist für die zweite Zeile >> A.text
ab der 2.Bat dann wird angehangen.

Umleiten mit Batch. http://www.robvanderwoude.com/redirection.php
http://www.antonis.de/dos/batchtut/bat-kurs/#14

Gruß,
Peter
pdiddo
pdiddo 30.03.2017 um 13:39:19 Uhr
Goto Top
Danke Ihr beiden face-smile Das hat soweit funktioniert.

Ist es denn möglich, dass man sich die Zeilen selber raussucht, wie oben beschrieben ? Sprich 1.bat soll auch in Zeile 1 der A.txt und 2.bat soll in Zeile zwei der A.txt schreiben?
132692
132692 30.03.2017 aktualisiert um 13:54:21 Uhr
Goto Top
@echo off & setlocal
set zeile=2
>A_neu.txt (for /f "tokens=1,* delims=:" %%a in ('findstr /nr "^" "C:\A.txt"') DO (  
	if "%%a" == "%zeile%" (echo Dein neuer Text) else (echo(%%b)  
))

Du solltest dich besser gleich mit Powershell auseinandersetzen Batch ist sowas von out in solchen Sachen.
$text = gc c:\A.txt
$text[1] = "Neu"  
$text | sc c:\A.txt