Script für die Editierung einer .txt Datei
Hallo zusammen freut mich nun auch auf administrator.de dabei zu sein.
Ich habe ein Problem mit einer Txt Datei die ich nach User(Chef) Vorgaben automatisch via .bat oder .vbs (oder was auch immer hilft) editieren muss.Die Datei sieht wie folgt aus:
JOB D1011000
/* STONE-AUSLESEN DER FILECOUNT DATEI
RUN DAILY
RELEASE ADD(D1011001)
ENDJOB
JOB D1011001
/* STONE-ÄNDERN DER FILECOUNT DATEI
CCCHK RC(0:1) OK
RUN DAILY
RELEASE ADD(D1011998)
ENDJOB
Die Anzahl der Einträge(JOB...bis ENDJOB) kann stark variieren für Beispiel habe ich nur 2 Einträge ausgewählt, man sieht das diese Datei bis JOB 998 geht.
So nun zur Herausforderung: Alles was hinter dem /* steht muss mit einem"." hinter dem Eintrag in der Zeile darüber kopiert werden.Sodass diese so aussieht:JOB D1011000.STONE-AUSLESEN DER FILECOUNT DATEI
So das geht ja noch!! Dies hat allerdings zur Folge, das die oder der "RELEASE ADD" Eintrag der zum JOB Eintrag gehört genauso angepasst werden muss.Spricht müssten diese Einträge wie folgt geändert werden:RELEASE ADD(D1011001.STONE-ÄNDERN DER FILECOUNT DATEI)
Leider gibt es manchmal zum Job nur einen "RELEASE...." Eintrag manchmal aber auch mehrere.
Also soll meine Beispiel Datei nacher so aussehen:
JOB D1011000.STONE-AUSLESEN DER FILECOUNT DATEI
/* STONE-AUSLESEN DER FILECOUNT DATEI
RUN DAILY
RELEASE ADD(D1011001.STONE-ÄNDERN DER FILECOUNT DATEI)
ENDJOB
JOB D1011001.STONE-ÄNDERN DER FILECOUNT DATEI
/* STONE-AUSLESEN DER FILECOUNT DATEI
CCCHK RC(0:1) OK
RUN DAILY
RELEASE ADD(D1011998.ENDEVERARBEITUNG)
ENDJOB
Ich bin dabei mit meinem Batch Kenntnissen ziemlich schnell an Grenzen gestoßen. Ich denke mir das es Batch bald nicht geht. Ich habe aber leider leider in vbs oder Powershell oder sonst was keinerlei Erfahrungen. Ich danke euch schon mal vorab für eure Anregungen und Vorschläge!!!
Ich habe ein Problem mit einer Txt Datei die ich nach User(Chef) Vorgaben automatisch via .bat oder .vbs (oder was auch immer hilft) editieren muss.Die Datei sieht wie folgt aus:
JOB D1011000
/* STONE-AUSLESEN DER FILECOUNT DATEI
RUN DAILY
RELEASE ADD(D1011001)
ENDJOB
JOB D1011001
/* STONE-ÄNDERN DER FILECOUNT DATEI
CCCHK RC(0:1) OK
RUN DAILY
RELEASE ADD(D1011998)
ENDJOB
Die Anzahl der Einträge(JOB...bis ENDJOB) kann stark variieren für Beispiel habe ich nur 2 Einträge ausgewählt, man sieht das diese Datei bis JOB 998 geht.
So nun zur Herausforderung: Alles was hinter dem /* steht muss mit einem"." hinter dem Eintrag in der Zeile darüber kopiert werden.Sodass diese so aussieht:JOB D1011000.STONE-AUSLESEN DER FILECOUNT DATEI
So das geht ja noch!! Dies hat allerdings zur Folge, das die oder der "RELEASE ADD" Eintrag der zum JOB Eintrag gehört genauso angepasst werden muss.Spricht müssten diese Einträge wie folgt geändert werden:RELEASE ADD(D1011001.STONE-ÄNDERN DER FILECOUNT DATEI)
Leider gibt es manchmal zum Job nur einen "RELEASE...." Eintrag manchmal aber auch mehrere.
Also soll meine Beispiel Datei nacher so aussehen:
JOB D1011000.STONE-AUSLESEN DER FILECOUNT DATEI
/* STONE-AUSLESEN DER FILECOUNT DATEI
RUN DAILY
RELEASE ADD(D1011001.STONE-ÄNDERN DER FILECOUNT DATEI)
ENDJOB
JOB D1011001.STONE-ÄNDERN DER FILECOUNT DATEI
/* STONE-AUSLESEN DER FILECOUNT DATEI
CCCHK RC(0:1) OK
RUN DAILY
RELEASE ADD(D1011998.ENDEVERARBEITUNG)
ENDJOB
Ich bin dabei mit meinem Batch Kenntnissen ziemlich schnell an Grenzen gestoßen. Ich denke mir das es Batch bald nicht geht. Ich habe aber leider leider in vbs oder Powershell oder sonst was keinerlei Erfahrungen. Ich danke euch schon mal vorab für eure Anregungen und Vorschläge!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 186523
Url: https://administrator.de/contentid/186523
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo!
ich habe jetzt zwar immer noch nicht herausgefunden, wann "auslesen der Filecount" bzw. "ändern der Filecount" bzw. "Ender der Verarbeitung" stehen soll....
wie dem auch sei:
abgesehen davon müsste folgendes funktionieren:
Sollte dem so sein, dann schließ mich bitte in Dein Abendgebet ein...
lg
Edi
ich habe jetzt zwar immer noch nicht herausgefunden, wann "auslesen der Filecount" bzw. "ändern der Filecount" bzw. "Ender der Verarbeitung" stehen soll....
wie dem auch sei:
abgesehen davon müsste folgendes funktionieren:
datei = "text.txt"
datei1 = "neuetext.txt"
Set fs = CreateObject("Scripting.FileSystemObject")
Set File = fs.OpenTextFile(datei , 1, true)
Do While not file.AtEndOfStream
zeile = (file.ReadLine)
If InStr(zeile,"JOB ") >=1 Then
Zeiletemp = zeile
Zeile = ""
End If
If InStr(zeile,"/* ") >=1 Then
zeile = zeiletemp & zeile & vbCrLf & zeile
End If
If InStr(zeile,"RELEASE ADD") >=1 Then
zeile = Replace(zeile, ")",".STONE-ÄNDERN DER FILECOUNT DATEI)")
End if
If Len(zeile) >= 1 Then
ausgabe = ausgabe & zeile & vbCrLf
End if
Loop
set dateineu = fs.createtextfile(datei1, true)
dateineu.write ausgabe
Sollte dem so sein, dann schließ mich bitte in Dein Abendgebet ein...
lg
Edi