fitzodil
Goto Top

Batch Datei mit CR Zeilenbeginn (HEX 0D)

Ich suche ein Batch Script was den Zeilenumbruch und Neubeginn mit CR (HEX 0D) realisiert:

Momentan sieht das Script so aus:

@echo off

set i=100500

:START

ECHO MSH^|~\^&^|HIS_a^|XYZ_HOSPITAL^|MESA_OF^|XYZ_RADIOLOGY^|^|^|ORMO01^|211104^|P^|2.3.1^|^|^|^|^|^|^|^| >> insertorder%i%.hl7
ECHO PID^|^|^|SAS%i%IWM_Issuer^|^|Openlink%i%AndreasDr.^|^|19800101^|F^|^|BL^|Tesstrasse 55Zwickau08056DE^|^|^|^|^|^|^|20-95-MM211^|^|^|^|^|^|^|^|^|^|^|^| >> insertorder%i%.hl7
ECHO PV1^|^|I^|1W
1112XYZ_HOSPITAL^|^|^|^|1234WEAVERTIMOTHYPDR^|^|5101NELLFREDERICKPDR^|$HOSPITAL_SERVICE$^|^|^|^|^|2^|^|5222NELLFREDERICKPDR^|^|%i%/2008^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|V^| >> insertorder%i%.hl7
ECHO ORC^|NW^|A222Z
1^|^|^|^|^|1once200007010800ROUTINE^|^|200006211400^|tech1^|^|sas_admin^|1348^|0176/66666666^|^|^|922229-10IHE-RADIHE-CODE-231^|^| >> insertorder%i%.hl7
ECHO OBR^|1^|A222Z
1^|^|CT.ABD^|^|^|^|^|^|^|^|^|2^|^|RadiologyR^|7101ESTRADAJAIMEPDR^|^|^|^|^|^|^|^|^|^|^|1once200007010800ROUTINE^|^|^|WALK^|Modality Test Studyreason^|^|^|^|^|^|^|^|^|^|^|^|^|^| >> insertorder%i%.hl7


ECHO %i%

set /a i=%i% + 1

GOTO START


Es werden die Dateien insertorder%i%.hl7 in einer Schleife mit einer Variable i geschrieben.
Das funktioniert.
Allerdings brauche ich die Dateien nicht so, wie sie das ECHO normalerweise schreibt sondert so,
das am Beginn jeder Zeile (z.B.: PID^..) ein HEX 0D als CR steht.

Kann man das mittels Batch realiseren und wenn ja, wie?

Vielen Dank für eure Hilfe.

Andreas

Content-Key: 94944

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

Printed on: April 18, 2024 at 19:04 o'clock

Member: bastla
bastla Aug 21, 2008 at 09:36:11 (UTC)
Goto Top
Hallo fitzodil!

Kombiniert mit der Erstellung der Dateien (in einer etwas eleganteren Schleife face-wink) könnte das unter Verwendung von (temporärem) VBScript mit folgendem Batch gehen:
@echo off & setlocal

set R=%temp%ReplaceCRLF.vbs
>%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):F=WScript.Arguments(0):T=fso.OpenTextFile(F).ReadAll:fso.CreateTextFile(F).Write Replace(T,vbCrLF,vbCR)  

for /L %%i in (100500,1,100505) do (
ECHO MSH^|~\^&^|HIS_a^|XYZ_HOSPITAL^|MESA_OF^|XYZ_RADIOLOGY^|^|^|ORMO01^|211104^|P^|2.3.1^|^|^|^|^|^|^|^| >> insertorder%%i.hl7
ECHO PID^|^|^|SAS%%iIWM_Issuer^|^|Openlink%%iAndreasDr.^|^|19800101^|F^|^|BL^|Tesstrasse 55Zwickau08056DE^|^|^|^|^|^|^|20-95-MM211^|^|^|^|^|^|^|^|^|^|^|^| >> insertorder%%i.hl7
ECHO PV1^|^|I^|1W1112XYZ_HOSPITAL^|^|^|^|1234WEAVERTIMOTHYPDR^|^|5101NELLFREDERICKPDR^|$HOSPITAL_SERVICE$^|^|^|^|^|2^|^|5222NELLFREDERICKPDR^|^|%%i/2008^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|V^| >> insertorder%%i.hl7
ECHO ORC^|NW^|A222Z1^|^|^|^|^|1once200007010800ROUTINE^|^|200006211400^|tech1^|^|sas_admin^|1348^|0176/66666666^|^|^|922229-10IHE-RADIHE-CODE-231^|^| >> insertorder%%i.hl7
ECHO OBR^|1^|A222Z1^|^|CT.ABD^|^|^|^|^|^|^|^|^|2^|^|RadiologyR^|7101ESTRADAJAIMEPDR^|^|^|^|^|^|^|^|^|^|^|1once200007010800ROUTINE^|^|^|WALK^|Modality Test Studyreason^|^|^|^|^|^|^|^|^|^|^|^|^|^| >> insertorder%%i.hl7
cscript //nologo %R% insertorder%%i.hl7
echo %%i
)
del %R%
Ist es eigentlich Absicht, dass jede erzeugte Zeile mit einem Leerzeichen endet?

Grüße
bastla
Member: fitzodil
fitzodil Aug 21, 2008 at 10:40:40 (UTC)
Goto Top
Super. Vielen Dank. Genau das hatte ich gesucht. Ich bin begeistert (-;