apex.predator24
Goto Top

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.

Content-ID: 360728

Url: https://administrator.de/forum/txt-file-splitten-360728.html

Ausgedruckt am: 23.12.2024 um 06:12 Uhr

usrie.eft
Lösung usrie.eft 11.01.2018 um 15:46:45 Uhr
Goto Top
@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
apex.predator24
apex.predator24 11.01.2018 um 15:52:58 Uhr
Goto Top
Hi usrie.eft

Vielen Dank für dein Antwort.
Kurze Frage: muss beim Script nichts angepasst werden?
usrie.eft
usrie.eft 11.01.2018 um 16:12:54 Uhr
Goto Top
nein.
die Daten müssen in die Datei teile.txt
und alles sollte sich im gleichen Verzeichnis befinden.
colinardo
colinardo 11.01.2018 aktualisiert um 16:28:48 Uhr
Goto Top
Als Powershell sieht das so z.B. so aus:
$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 face-confused?

Grüße Uwe
apex.predator24
apex.predator24 11.01.2018 um 16:26:04 Uhr
Goto Top
Danke Passt.