Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch WinXP - jeweils 3 Bestimmte Zeilen aus mehreren Textdateien in neue Datei (die 3 Zeilen hintereinander dann als Einzeiler)

Frage Entwicklung Batch & Shell

Mitglied: Experiment626

Experiment626 (Level 1) - Jetzt verbinden

01.02.2014 um 16:23 Uhr, 2314 Aufrufe, 2 Kommentare, 1 Danke

Hallo Ihr Fachleute,

ich krieg's nicht hin, FOR ist für mich nur noch verwirrrend, kenne mich mit den Detaills nicht aus.

Ich möchte eine Log-Datei erstellen.
Diese soll entstehen aus Inhalten bestimmter Textdateien, die alle im gleichen Verzeichnis liegen, z.B. "D:\HL7\" und dem Muster "Bef*.txt" entsprechen.
Die Textdateien beinhalten unter anderem die u. a., immer gleiche Struktur, um deren Daten es geht.
Die genannten Feldanfänge OBX|4|TX||| bis OBX|7|TX||| sind entsprechend in jeder Textdatei vorhanden.
Die | ist ein Separator, z.B. ||| = 3 Separatoren ohne dazwischenliegende Daten.

OBX|4|TX|||A-Nr: 7503387431 Name: Aaa, Bbbbbb geb. am: 01.01.1950||||||F|||20140131|||
OBX|5|TX|||Materialeingang: 30.01.2014||||||F|||20140131|||
OBX|6|TX|||Berichtsausgang: 31.01.2014||||||F|||20140131|||
OBX|7|TX|||Berichtsnummer: E 14361/13||||||F|||20140131|||

Sollte irgendwann der Header erweitert werden, wäre es möglich, das die Zeilen sich ändern könnten,
d. h. z. B. OBX|4|TX|||A-Nr. ..... etc. beginnt dann erst a OBX|8|TX||| o. ä., so dass man sich hier vielleicht
besser auf die Begriffe stützen sollte, wie A-Nr, geb. am:, Materialeingang etc. So wäre ein evtl. späteres Zeilenverschieben durch Header-Veränderung unerheblich.

Die erzeugte Zieldatei (z. B. Liste.log) sollte dann folgenden Inhalt zeigen:.

E 14361/13 EIN30.01.2014 AUS31.01.2014 A-Nr: 7503387431 Name: Aaa, Bbbbbb, geb. am: 01.01.1950

Ich bin euch für eure Hilfe sehr dankbar.

Stitch
Mitglied: bastla
01.02.2014, aktualisiert um 17:40 Uhr
Hallo Experiment626!

Das könnte (weitgehend ungetestet) etwa so gehen:
01.
@echo off & setlocal 
02.
set "Ordner=D:\HL7" 
03.
set "Dateien=Bef*.txt" 
04.
 
05.
set "Liste=D:\Liste.log" 
06.
 
07.
set "Feld1=Berichtsnummer;" 
08.
set "Feld2=Materialeingang;EIN" 
09.
set "Feld3=Berichtsausgang;AUS" 
10.
set "Feld4=A-Nr;A-Nr: " 
11.
 
12.
del "%Liste%" 2>nul 
13.
pushd "%Ordner%" 
14.
for /f "delims=" %%i in ('dir /b/a-d "%Dateien%"') do call :ProcessFile "%%i" 
15.
popd 
16.
goto :eof 
17.
 
18.
:ProcessFile 
19.
set "Satz=" 
20.
for /f "tokens=1-3 delims=;=" %%e in ('set Feld') do call :ProcessField %1 "%%f" "%%g" 
21.
setlocal enabledelayedexpansion 
22.
>>"%Liste%" echo !Satz:~1! 
23.
endlocal 
24.
goto :eof 
25.
 
26.
:ProcessField 
27.
for /f "delims=" %%a in ('findstr /lc:"%~2: " %1') do set "Zeile=%%a" 
28.
call set "Daten=%%Zeile:*%Feld%: =%%" 
29.
for /f "delims=|" %%a in ("%Daten%") do set "Satz=%Satz% %~3%%a" 
30.
goto :eof
Geschwindigkeitsrekorde lassen sich damit aber sicher nicht aufstellen ...

Kurz zur Erklärung der Variablen %Feld1% bis %Feld4% (andere Variablen, deren Namen mit "Feld" beginnen, darf es übrigens in diesem Batch nicht geben): Diese enthalten den Suchbegriff und (nach dem Semikolon) den Text, der vor dem jeweiligen Feld ausgegeben werden soll (also zB "EIN" vor dem Wert von "Materialeingang").
Zu
FOR ist für mich nur noch verwirrrend, kenne mich mit den Detaills nicht aus.
könnte ich das einschlägige "Tutorial zur FOR-Schleife" von @Friemler empfehlen.

Grüße
bastla
Bitte warten ..
Mitglied: Experiment626
01.02.2014 um 22:23 Uhr
Alle Achtung bastla, ich staune nur ...
vielen lieben Dank, es funktioniert wunderbar, genauso sollte es sein.

Danke für die Empfehlung und solch schneller Hilfe,
und das auch noch am Wochenende.

.... sehr empfehlenswert !!!

Gruss Stitch.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bestimmte Zeile einer Textdatei mit Batch auslesen
gelöst Frage von PinkFLuffyUnicornBatch & Shell2 Kommentare

Hi, ich habe ein kleines Batch Script, welches mir den Status der Firewall ausgeben soll(ob an oder aus) der ...

Batch & Shell
Bestimmte Zeile aus mehreren Dateien in eine neue Datei schreiben
gelöst Frage von Oggy76Batch & Shell5 Kommentare

Hallo zusammen, meine Kenntnisse in Sachen batch/shell sind ehr auf Anfängerniveau zu sehen. Grund -basics im CMD-Prompt sind vorhanden, ...

Batch & Shell
Batch: Txt Datei mit mehreren Zeilen auslesen, wandeln und hintereinander wiedergeben
gelöst Frage von MentacorBatch & Shell4 Kommentare

Hallo zusammen, Ich habe eine Frage zu einem Problem mit meiner Batch Meine Frage: Ist es möglich aus einer ...

Batch & Shell
BATCH: Textdatei ab einer bestimmten Zeile kopieren
gelöst Frage von lwentzBatch & Shell3 Kommentare

Hallo, ich habe folgende Anforderung: Ich möchte ein Log-File (Textdatei mit einem Eintrag pro Zeile) in ein neues Log-File ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner14 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...