piwi17
Goto Top

String aus zwei Dateien als Batchdatei

Wer kann mir helfen?

Ich brauche eine Batch-Datei die mir aus den Inhalten von zwei Textdateien einen String zeilenweise in einer neuen Datei zusammensetzt. Die Dateien haben die gleiche Anzahl an Zeilen. In der zweiten Datei sollen die Werte ab Zeichen 39 ausgelesen werden.

Datei 1 besteht aus Punktnummern
1
2
3
4
5
usw.
Datei 2 besteht aus Koordinatenwerten
200 400
300 500
600 300
usw.

Die neue Datei soll aus Punktnummer und Koordinatenwert in einer Zeile mit Semikolon als Trennzeichen bestehen:

1 ; 200 ; 400
5 ; 600 ; 300
9 ; 700 ; 200

wenn ich es hiermit probiere wird nur eine Zeile geschrieben:

set /p %text1=<Punktnummern-Liste.txt
set /p %text2=<Koordinaten-Liste.txt
set text3=%text1%%text2%
echo %text3% > %test.txt

Content-ID: 6190421663

Url: https://administrator.de/forum/string-aus-zwei-dateien-als-batchdatei-6190421663.html

Ausgedruckt am: 10.04.2025 um 09:04 Uhr

3063370895
Lösung 3063370895 02.03.2023 aktualisiert um 17:27:46 Uhr
Goto Top
$1 = Get-Content "c:\1.txt"  
$2 = Get-Content "c:\2.txt"  
for ($i = 0; $i -lt $1.length; $i++) { "$($1[$i]) ; $($2[$i].replace(" ", " ; "))" | Out-File -Append out.txt }   
sublime_text_ozemq1sqf3
Piwi17
Piwi17 03.03.2023 um 09:28:10 Uhr
Goto Top
Vielen Dank für die Rückmeldung,

allerdings sieht das nach Powershell aus, von dem ich überhaupt keine Ahnung habe. Ich hätte gerne ein Batch-Skript das ich selbst noch anpassen kann.
6017814589
Lösung 6017814589 03.03.2023 aktualisiert um 11:53:19 Uhr
Goto Top
Plain Batch etwa so:
@echo off &setlocal enabledelayedexpansion
set "punkte=D:\punkte.txt"  
set "coords=D:\coords.txt"  
set "merged=D:\merged.txt"  
<"%coords%" (for /f "usebackq delims=" %%a in ("%punkte%") do set /p "line=" &set "line=!line: = ; !" &echo.%%a ; !line!) >"%merged%"  

screenshot

Btw. auch hier schon da gewesen
Zwei Texte Zeilenweise zusammenfügen per batch
3063370895
3063370895 03.03.2023 aktualisiert um 10:53:01 Uhr
Goto Top
$1 = Get-Content "c:\1.txt"  
$2 = Get-Content "c:\2.txt"  
for ($i = 0; $i -lt $1.length; $i++) { "$($1[$i]) ; $($2[$i].replace(" ", " ; "))" | Out-File -Append out.txt }   

Hi ChatGPT, convert this to a batch script

Here's the batch script equivalent of the PowerShell code:  


@echo off
setlocal enabledelayedexpansion

set "file1=c:\1.txt"  
set "file2=c:\2.txt"  
set "output=out.txt"  

for /f "tokens=1,* delims=" %%a in (%file1%) do (  
    set /p line2=<%file2%
    set "line2=!line2: = ; !"  
    echo %%a ; !line2! >> %output%
)

endlocal

funktioniert einwandfrei.
Und da soll noch einer sagen ChatGPT ist nicht zu gebrauchen face-smile

Disclaimer: ich hab von Batch keine Ahnung. Habe das so als bat abgespeichert und ausgeführt. Ergebnis war von meinem PS-Skript nicht zu unterscheiden.
Piwi17
Piwi17 03.03.2023 um 13:01:51 Uhr
Goto Top
Perfekt, damit kann ich arbeiten.
Vielen Danke
Serie: String aus zwei Dateien
String aus zwei Dateien als Batchdatei5