Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

VBS-Batch - Script soll in einer test.txt Datei jede 5te Zeile von 0 auf 1 umschreiben

Mitglied: ownili

Einige Variablenparameterlisten ändern

Hallo,

da ich in diesem Forum schon einige Interessante und hilfreiche Beiträge gefunden habe aber leider nichts passendes zu meinem derzeitigen Problem, hoffe ich dass ihr mir weiter helfen könnt.

ich habe mehrere sehr große Text dateien, die die Parameter von TCP/IP-Treibern beinhalten. Leider sind diese Text-Dateien nicht korrekt.

Die Dateien sind so aufgebaut:

1000
ST_PH08_BM01
0
4500
68
0
1
1000
ST_PH08_BM02
0
4500
68
0
1
1000
ST_PH08_BM03
0
4500
68
0
1
1000
AS_PH08_DI01
0
4500
68
0
1
...
...
...

Ich benötige ein Script, egal ob VBS oder Batch, welches auf einem normalen PC ohne Visual Studio oder vergleichbares programmier/ausführbar ist. Dieses Script sollte jede "0" welche eine Zeile unter einem Variablennamen(ST_PH08_BM0x) steht zu einer 1 umschreiben.

Da es einige Dateien mit bis zu 1000 Variablen sind, möchte ich dies nicht zwingend per Hand machen!
Ich hoffe mir kann jemand weiter helfen!

Vielen Dank im voraus

Grüße
owni

Content-Key: 101122

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

Ausgedruckt am: 30.07.2021 um 09:07 Uhr

Mitglied: bastla
bastla 05.11.2008 um 18:32:03 Uhr
Goto Top
Hallo ownili und willkommen im Forum!

Was kann als Kennzeichen für eine Zeile, welche den Variablennamen enthält, verwendet werden - erste Stelle ist ein Buchstabe, Zeilenlänge, enthaltener "_"?

Für die erste Variante könnte ein VBScript etwa so aussehen:
In dieser Fassung wird die Originaldatei ersetzt (und keine Sicherungskopie erstellt).

Grüße
bastla

[Edit] Anforderung
jede "0" welche eine Zeile unter einem Variablennamen(ST_PH08_BM0x) steht zu einer 1 umschreiben
wörtlich genommen und per Ersetzung umgesetzt. [/Edit]
Mitglied: ownili
ownili 05.11.2008 um 19:43:53 Uhr
Goto Top
Vielen Dank für die schnelle Antwort!

Ich habe deinen Quelltext genommen und in den Windows Editor gepackt und die Zeile (Datei = "C:\Test\Test.txt") angepasst. Danach habe ich das ganze als "Test.vbs" gespeichert. Wenn man diese Datei nun ausführt erscheint eine Meldung:

Windows Script host:
Skript: C:\Test\Test.vbs
Zeile: 5
Zeichen: 1
Fehler: Die Datei wurde nicht gefunden
Code: 800A0035
Quelle: Laufzeitfehler in Microsoft VBScript

Zeile 5 entspricht bei mir:
Zeilen = Split(fso.OpenTextFile(Datei).ReadAll, vbCrLF)

Ich benutze Windows-Vista-Buisness.

Ein "_" könnte man als anhaltspunkt benutzen. Ist es nicht auch möglich das Zeilenbezogen machen?
Sprich: z.b.:
Startzeile = 10
Abstand = 5(Zeilen)


Beste Grüße
owni
Mitglied: bastla
bastla 05.11.2008 um 20:51:39 Uhr
Goto Top
Hallo ownili!

Weshalb ist die Zeile 3 bei Dir zur Zeile 5 geworden? Anyhow, ich habe eben nochmals Deine Testdaten und das Script hier heruntergeladen, in den entsprechenden Dateien in "C:\Test" gespeichert und erfolgreich ausgeführt. Eigentlich kann der Fehler bei Dir, wie ja auch der Meldung zu entnehmen ist, nur in einem falsch angegebenen Pfad liegen.

Ist es nicht auch möglich das Zeilenbezogen machen?
Sprich: z.b.:
Startzeile = 10
Abstand = 5(Zeilen)
Wenn damit gemeint ist, dass jeweils in den Zeilen 10, 15, 20, etc jede Null gegen eine Eins getauscht werden soll, dann so:
Da in VBS ab 0 gezählt wird, muss für die Zeile 10 in der "For"-Schleife mit 9 begonnen werden. Zu Deinen Testdaten passt allerdings ein 5-Zeilen-Abstand nicht wirklich - eher sollten es 7 sein ...
Um auch noch die "_"-Variante anzubieten:
Grüße
bastla
Mitglied: ownili
ownili 05.11.2008 um 22:49:03 Uhr
Goto Top
Nochmals vielen Dank für die Arbeit,

nun funktioniert es perfekt!

Du hast recht, dass wären jeweils 7 Zeilen, die zu überspringen wären und als Startzeile die Nummer 2. Dies hab ich nun auch soweit angepasst.

Das Problem, welches vorhanden war, war tatsächlich auf den Pfad zurück zu führen, da die Datei "Test.txt.txt" hieß, da in den Einstellung vom Vista der Datentyp nicht mit eingeblendet war.

Beste Grüße
owni
Heiß diskutierte Beiträge
question
Windows 365SarekHLVor 1 TagFrageWindows 1112 Kommentare

Hallo zusammen, nun ist es also soweit - Microsoft stellt mit "Windows 365" die Weichen in Richtung Windows as a Service: Wenn Microsoft da schreibt ...

question
Geplanter Server für Home LABraxxis990Vor 1 TagFrageServer-Hardware15 Kommentare

Guten Tag , Ich möchte gern meine aktuelle Hardware Tauschen. Im Einsatz ist ein kleiner Lenovo M93p ( Glaube ). Dort läuft ESXI mit 3 ...

question
Massive Probleme mit Windows Suche, Taskbar, Windows Standard Apps auf jedem Windows 10-PC im Firmennetzwerkrznr666Vor 21 StundenFrageWindows 1027 Kommentare

Hallo liebe Community, die PCs in unserem Unternehmen weisen folgende Probleme auf. Die Fehler treten nach einiger Zeit auf JEDEM Windows 10-PC auf, der genaue ...

question
Absicherung Exchange ServerLKleemannVor 21 StundenFrageExchange Server6 Kommentare

Hallo zusammen, wir sind bei uns in der Firma nun endlich vom Exchange POP3 Connector weggekommen und empfangen nun unsere E-Mail direkt über MX-Einträge. Nun ...

question
Anfragen an internen- und externen DNS Server gelöst BPeterVor 1 TagFrageWindows Server17 Kommentare

Hallo, im Homeoffice soll eine DNS Anfrage für Softphone über einen externen DNS Server laufen und nicht über den internen DNS Server. Dies soll aber ...

question
CMS für Lebenslauf einer Maschine gelöst rrobbyyVor 1 TagFrageCMS10 Kommentare

Hallo zusammen, im Zuge einer Masterarbeit loten wir gerade ein paar Möglichkeiten aus, wie man die (alle) technischen Daten einer Anlage (Kran-Anlagen) strukturiert und nachvollziehbar ...

question
Domainbenutzer Passwort lokal ändern?gecekusuVor 1 TagFrageWindows Userverwaltung9 Kommentare

Hallo zusammen, gibt es die Möglichkeit das Benutzerpasswort von lokalen Benutzer am PC der in einer (nicht verbundenen) Domain ist zu ändern? Sprich, Benutzer ist ...

question
Robocopy - FEHLER 0 (0x00000000)emeriksVor 23 StundenFrageBatch & Shell10 Kommentare

Hi, habe ich hier einen täglichen Copy Job, wo Robocopy plötzlich "Fehler 0" meldet, dass es erfolgreich sei, aber nichts kopiert. Festplatte des NAS ist ...