Per Batch bestimmte Zeile in Textdatei an x-der Stelle abscheneiden
Hallo,
ich muss folgende Zeiel in einer Batschdatei finden und diese an 256er Stelle abschneiden:
Erkennen kann ich die Zeile am þUEBERþNþSKZþALTþ am Anfang dieser. Die 256 Zeichen müssen ab dem þacþ gezählt werden.
Alles andere zuvor ist zwar auch variabel, darf aber nicht mitgezählt werden.
Vielen Dank schon mal, für die Hilfe.
ich muss folgende Zeiel in einer Batschdatei finden und diese an 256er Stelle abschneiden:
þUEBERþNþSKZþALTþVARTþ0 þabþ00 þaaþ100200 þacþDas ist eine Beispielbeschreibung die an 256er Stelle abgeschnitten werden muss. Es muss aber am Ende der Zeilenumbruch erhalten bleiben.
Erkennen kann ich die Zeile am þUEBERþNþSKZþALTþ am Anfang dieser. Die 256 Zeichen müssen ab dem þacþ gezählt werden.
Alles andere zuvor ist zwar auch variabel, darf aber nicht mitgezählt werden.
Vielen Dank schon mal, für die Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193887
Url: https://administrator.de/forum/per-batch-bestimmte-zeile-in-textdatei-an-x-der-stelle-abscheneiden-193887.html
Ausgedruckt am: 24.12.2024 um 13:12 Uhr
7 Kommentare
Neuester Kommentar
Schau dir mal die Datei- und String-Funktionen von VBscript an. Damit sollte es gehen.
http://www.w3schools.com/vbscript/vbscript_ref_functions.asp
http://www.w3schools.com/vbscript/vbscript_ref_functions.asp
Hallo AS-N00!
[OT]
[/OT]
Was soll denn nun genau passieren? Für mich sieht's aus wie
Grüße
bastla
P.S.: Wie sputnik schon angesprochen hat, wäre VBS das bessere Werkzeug (Funktionen
[OT]
ich muss folgende Zeiel in einer Batschdatei finden
Wer solche Zeiel hat, sitzt schnell mal in der Batsche ... [/OT]
Was soll denn nun genau passieren? Für mich sieht's aus wie
- finde die einzige Zeile, die mit " þUEBERþNþSKZþALTþ" beginnt
- finde in dieser Zeile die Position, an der "þacþ" steht
- verwende von der Zeile alles bis zur fraglichen Position sowie die folgenden 256 Zeichen
- und mache dann was mit diesem Teilstring?
Grüße
bastla
P.S.: Wie sputnik schon angesprochen hat, wäre VBS das bessere Werkzeug (Funktionen
Split()
, Left()
) für diesen Zweck ...
Hallo AS-N00!
Falls die Anwort auf meine letzte Frage sein sollte:
Die Ausgangsdatei wird durch die gekürzte Fassung nur dann (ohne Sicherungskopie) ersetzt, wenn die entsprechende Zeile und darin die Markierung ("þacþ") gefunden wurden.
Grüße
bastla
Falls die Anwort auf meine letzte Frage sein sollte:
- ersetze die ursprüngliche Zeile durch die gekürzte Fassung in der Originaldatei
Datei = "D:\DeineDatei.txt"
Kennz = "þUEBERþNþSKZþALTþ"
Mark = "þacþ"
LKennz = Len(Kennz)
Set fso = CreateObject("Scripting.FileSystemObject")
Text = Split(fso.OpenTextFile(Datei).ReadAll, vbNewLine) 'gesamte Datei in Zeilen-Array "Text" einlesen
For i = 0 To UBound(Text) 'alle Zeilen durchgehen
If Left(Text(i), LKennz) = Kennz Then 'mit 'Kennz' beginnende Zeile gefunden
Position = InStr(Text(i), Mark) 'Position der Markierung ermitteln
If Position > 0 Then 'wenn Markierung gefunden wurde, ...
Text(i) = Left(Text(i), Position + 256 - 1) '... ursprüngliche Zeile durch gekürzte Zeile ersetzen
Exit For 'keine weiteren Zeilen suchen
End If
End If
Next
If Position > 0 Then fso.CreateTextFile(Datei).Write Join(Text, vbNewLine) 'wenn Markierung gefunden wurde, Datei durch neue Version überschreiben
Grüße
bastla