VBScript - Wert verändern
Hallo zusammen,
hier habe ich einen VBScript geschrieben zum in einer Datei den Wert nach "TEST=" zu verändern!!!
Das ist die Substitute.val Datei:
Nun musste ich in meinem Script das kompliziert machen mit Kopieren und Löschen, weil in VBS man die Dateien nicht verändern kann. Nur dazu schreiben.
Hier mein Code:
Das ist nicht fertig, der Script wird viel umfangreicher. Aber ich mache alles Schrittweise.
So nun hier habe ich den Script aus 3 Scripte zusammengeführt. Alle haben funktioniert aber zusammen nicht.
P.S- eine .val Datei kann ich nicht löschen darum diese Umbenennung ins .txt.
Nun sehe ich den Fehler nicht. Kann mir jemand helfen???
LG, Kristy
hier habe ich einen VBScript geschrieben zum in einer Datei den Wert nach "TEST=" zu verändern!!!
Das ist die Substitute.val Datei:
[SUBSTITUTIONS]
GESCHWINDIGKEIT=
TIME=12:00:00 AM
SPURS=86
JAZZ=94
TEMPERATURE=82
GAME_TIME=15:04
BUSH=49.9%
GORE=50.1%
TEST=rot
[PAGE_SELECTION]
PROJECT=default
PAGE=Sponsor0
PREVIEW=0
DISPLAY=0
TRANSITIONING=0
[SPECIAL]
LOAD_VARIABLE_DLL=1
Nun musste ich in meinem Script das kompliziert machen mit Kopieren und Löschen, weil in VBS man die Dateien nicht verändern kann. Nur dazu schreiben.
Hier mein Code:
Set MyFiles = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1, ForWriting = 2
strEingabe = InputBox("Geben Sie die Variable ein")
strNeueZeile = "TEST="& strEingabe
varDatei="d:\Substitute.val"
varTmpDatei="d:\TestOut.val"
Set fin = MyFiles.OpenTextFile(varDatei, ForReading)
Set fout = MyFiles.OpenTextFile(varTmpDatei, ForWriting, True)
strSearch = "TEST="
do while not fin.AtEndOfStream
strline = fin.readLine()
if instr(1,strline, strSearch) = 0 then
'Zu entfernende Zeile nicht gefunden, also Zeile ausgeben
fout.writeline strline
else fout.WriteLine strNeueZeile
end if
loop
Dim fso, objFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFile = fso.GetFile("d:\Substitute.val") ' hier mit Pfadangabe
objFile.Name = "d:\Substitute.txt" ' hier ohne Pfadangebe
dateiAngabe="d:\Substitute.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(dateiAngabe)
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFile = fso.GetFile("d:\TestOut.val") ' hier mit Pfadangabe
objFile.Name = "Substitute.val" ' hier ohne Pfadangebe
Das ist nicht fertig, der Script wird viel umfangreicher. Aber ich mache alles Schrittweise.
So nun hier habe ich den Script aus 3 Scripte zusammengeführt. Alle haben funktioniert aber zusammen nicht.
P.S- eine .val Datei kann ich nicht löschen darum diese Umbenennung ins .txt.
Nun sehe ich den Fehler nicht. Kann mir jemand helfen???
LG, Kristy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 92811
Url: https://administrator.de/forum/vbscript-wert-veraendern-92811.html
Ausgedruckt am: 09.01.2025 um 22:01 Uhr
2 Kommentare
Neuester Kommentar
Hallo Butterblume!
Wenn Du Dir die Temp-Datei ersparen möchtest, könntest Du die gesamte Datei (mit .ReadAll und Split() am Zeilenende = vbCrLF) in ein Array einlesen, dieses durchlaufen, um die richtige Zeile zu finden, und in diese Zeile dann den neuen Wert schreiben. Am Ende müsstest Du mit Join() aus dem Array wieder einen zusammenhängenden Text machen und diesen mit .Write in die (inzwischen geschlossene und wieder zum Schreiben geöffnete) Eingabedatei schreiben.
Grüße
bastla
P.S- eine .val Datei kann ich nicht löschen darum diese Umbenennung ins .txt.
Das hat wohl nichts mit dem Dateityp zu tun, sondern eher mit der Tatsache, dass Du "fin" (und auch "fout") noch nicht geschlossen hast, daher nach der Zeile 21:fout.Close
fin.Close
Grüße
bastla