Txt-File splitten
Hallo Community
Ich bräuchte eure Hilfe.
Folgendes: wir müssen wir einen Kunden eine Batch-Datei oder PowerShell erstellen, welche eine exportierte Textdatei splitten soll.
Die Textdatei sieht aktuell so aus:
ELEMENT_ 1 1 3 A06 21/150 1 0 0.931 0.939 2.327 1.560 4.160 1.000 4.160 1.560 1.000 1 1.000
ARTIKEL_ 1 A0010002001
ARTIKEL_ 2 STGANZ
ARTIKEL_ 3 LAUFP
ARTIKEL_ 4 AUFTRITT
ARTIKEL_ 5 STEIGUNG
ARTIKEL_ 6 62.540
ARTIKEL_ 7 2300 24.634 kg
ELEMENT_ 2 4 3 C80/95 1 0 1.136 0.931 2.841 1.676 3.540 1.220 3.540 1.676 1.220 1 1.000
ARTIKEL_ 1 STGANZ
ARTIKEL_ 2 LAUFP
ARTIKEL_ 3 AUFTRITT
ARTIKEL_ 4 STEIGUNG
ELEMENT_ 3 5 3 C50/60 3 0 5.858 0.863 14.644 1.705 3.190 6.790 3.190 1.705 6.790 1 1.000
ARTIKEL_ 1 STGANZ
ARTIKEL_ 2 LAUFP
ARTIKEL_ 3 AUFTRITT
ARTIKEL_ 4 STEIGUNG
ELEMENT_ 4 9 3 A06 C50/60 1 0 0.803 0.803 2.007 1.560 3.440 1.000 3.440 1.560 1.050 1 1.000
ARTIKEL_ 1 STGANZ
ARTIKEL_ 2 LAUFP
ARTIKEL_ 3 AUFTRITT
ARTIKEL_ 4 STEIGUNG
ARTIKEL_ 5 A0003001003 33.970 kg Rundstahl d 8
ARTIKEL_ 6 2300 0.000
ARTIKEL_ 7 2300 0.000
Die Batch-Datei soll den Inhalt von ELEMENT_ bis hin zum anderen ELEMENT_ in eine neue Text-Datei kopieren.
Danke für eure Hilfe.
Ich bräuchte eure Hilfe.
Folgendes: wir müssen wir einen Kunden eine Batch-Datei oder PowerShell erstellen, welche eine exportierte Textdatei splitten soll.
Die Textdatei sieht aktuell so aus:
ELEMENT_ 1 1 3 A06 21/150 1 0 0.931 0.939 2.327 1.560 4.160 1.000 4.160 1.560 1.000 1 1.000
ARTIKEL_ 1 A0010002001
ARTIKEL_ 2 STGANZ
ARTIKEL_ 3 LAUFP
ARTIKEL_ 4 AUFTRITT
ARTIKEL_ 5 STEIGUNG
ARTIKEL_ 6 62.540
ARTIKEL_ 7 2300 24.634 kg
ELEMENT_ 2 4 3 C80/95 1 0 1.136 0.931 2.841 1.676 3.540 1.220 3.540 1.676 1.220 1 1.000
ARTIKEL_ 1 STGANZ
ARTIKEL_ 2 LAUFP
ARTIKEL_ 3 AUFTRITT
ARTIKEL_ 4 STEIGUNG
ELEMENT_ 3 5 3 C50/60 3 0 5.858 0.863 14.644 1.705 3.190 6.790 3.190 1.705 6.790 1 1.000
ARTIKEL_ 1 STGANZ
ARTIKEL_ 2 LAUFP
ARTIKEL_ 3 AUFTRITT
ARTIKEL_ 4 STEIGUNG
ELEMENT_ 4 9 3 A06 C50/60 1 0 0.803 0.803 2.007 1.560 3.440 1.000 3.440 1.560 1.050 1 1.000
ARTIKEL_ 1 STGANZ
ARTIKEL_ 2 LAUFP
ARTIKEL_ 3 AUFTRITT
ARTIKEL_ 4 STEIGUNG
ARTIKEL_ 5 A0003001003 33.970 kg Rundstahl d 8
ARTIKEL_ 6 2300 0.000
ARTIKEL_ 7 2300 0.000
Die Batch-Datei soll den Inhalt von ELEMENT_ bis hin zum anderen ELEMENT_ in eine neue Text-Datei kopieren.
Danke für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 360728
Url: https://administrator.de/contentid/360728
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
5 Kommentare
Neuester Kommentar
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
:: echo.
cd /D %~dp0
:: echo V_AP-GQ_35_2008-11-03_05-41-36.dlc
set anz=0
ECHO. START
Time /T
:: Auftragsdatei
FOR /F "tokens=1,2* delims=_" %%i in ('type teile.txt') DO (
IF "%%i"=="ELEMENT" SET /A anz=!anz!+1
ECHO. %%i_%%j >>dat!anz!.txt
ECHO !anz! %%i
)
ECHO. FERTIG
ECHO. %anz%
Time /T
ECHO. FERTIG %anz%
ENDLOCAL
SET anz=
dies sollte dein Problem lösen
es erzeugt für jedes Element eine Datei datxx.txt
SETLOCAL ENABLEDELAYEDEXPANSION
:: echo.
cd /D %~dp0
:: echo V_AP-GQ_35_2008-11-03_05-41-36.dlc
set anz=0
ECHO. START
Time /T
:: Auftragsdatei
FOR /F "tokens=1,2* delims=_" %%i in ('type teile.txt') DO (
IF "%%i"=="ELEMENT" SET /A anz=!anz!+1
ECHO. %%i_%%j >>dat!anz!.txt
ECHO !anz! %%i
)
ECHO. FERTIG
ECHO. %anz%
Time /T
ECHO. FERTIG %anz%
ENDLOCAL
SET anz=
dies sollte dein Problem lösen
es erzeugt für jedes Element eine Datei datxx.txt
Als Powershell sieht das so z.B. so aus:
Grüße Uwe
$file = 'D:\datei.txt'
$ausgabeordner = 'D:\Ausgabe'
$cnt = 1
[regex]::matches((gc $file -raw),'(?sm)^ELEMENT.*?(?=^ELEMENT|\Z)').Captures | %{$_.Value | sc "$ausgabeordner\datei_$cnt.txt"; $cnt++}
wir müssen wir einen Kunden eine Batch-Datei oder PowerShell erstellen,
p.s. Wieso nehmt Ihr Aufträge an die ihr nicht selbst erfüllen könnt ?Grüße Uwe