Eratum Geschrieben 24. Juli 2006 Geschrieben 24. Juli 2006 Hallo liebe Leute... Wieder einmal hakt es bei mir mit der VBS Programmierung. Ich habe mir ein kleines Script gebaut, welche Die Dateiinhalte sämtlicher Dateien, des Ordners in dem das Script liegt, manipuliert. Aber irgendwie fehlt mir hier gerade voll der Denkanstoß. Es funktioniert alles wunderbar, nur eben das schreiben der neuen Daten in die Dateien, das bekomm ich nicht hin. Wäre net, wenn mir jemand helfen könnte. Dere Nico dim fsx,fs,ordner,name, Dada dim filesystemobject dim strFalsePath strFalsePath="D:\Daten\SCC" '-----------------Scriptordner bestimmen------------- set fsx = CreateObject("Scripting.FilesystemObject") scriptname = Wscript.ScriptFullName scriptpath = fsx.getparentfoldername(scriptname) '---------------------------------------------------- '---------------------------------------------------- set fs = CreateObject("Scripting.FileSystemObject") set ordner = fs.GetFolder(scriptpath) For each datei in ordner.Files name = datei.name msgbox (name) Set Dada = fs.OpenTextFile(name) inhalt = Dada.ReadAll ' msgbox (inhalt) inhalt = Replace(inhalt,"a","Ulumulu") ' [COLOR="Red"]Ich vermute, dass hier noch ein bisschen Quelltext fehlt[/COLOR] ' msgbox (inhalt) dada.close Next set fs=nothing set fsx=nothing set ordner=nothing Zitieren
Amstelchen Geschrieben 24. Juli 2006 Geschrieben 24. Juli 2006 ' Ich vermute, dass hier noch ein bisschen Quelltext fehlt sozusagen. du öffnest die datei bis dato zwar mit OpenTextFile (zum lesen?); ich sehe hier allerdings kein explizites ForReading, das ist unsauber und im nachhinein schwer nachzuvollziehen, ob nun aus der datei namens "name" nur gelesen oder auch in sie geschrieben wird. öffne innerhalb deines Files-loops einen weiteren deskriptor, welcher ein OpenTextFile mit ForWriting verwendet. möglicher fallstrick ist noch, wenn dateiinhalte unicode beinhalten; dann verwende TristateTrue im 4. parameter. deine variablenbenamsung lässt ebenfalls etwas zu wünschen übrig: "name" und "Dada" sind absolut nicht aussagekräftig. :floet: s'Amstel Zitieren
Eratum Geschrieben 25. Juli 2006 Autor Geschrieben 25. Juli 2006 Phew...also wenn ich ehrlich sein darf hab ich aus deiner Antwort kaum etwas verstanden :confused: Wäre es möglich das ganze etwas Laienhafter auszudrücken, bzw. mit einem kleinen Codebeispiel zu belegen? Die Benamsung wollt ich denn ändern wenn ich fertig bin, jetz hatte ich das zum Testen nur mal fix so hingebastelt.... Dennoch schonmal Danke für die Hilfe... Dere Eratum Edit: Kann ich ein und die selbe Datei gleichzeitig zum lesne und zum Schreiben öffnen? Zitieren
Eratum Geschrieben 25. Juli 2006 Autor Geschrieben 25. Juli 2006 Phew...also wenn ich ehrlich sein darf hab ich aus deiner Antwort kaum etwas verstanden :confused: Wäre es möglich das ganze etwas Laienhafter auszudrücken, bzw. mit einem kleinen Codebeispiel zu belegen? Die Benamsung wollt ich denn ändern wenn ich fertig bin, jetz hatte ich das zum Testen nur mal fix so hingebastelt.... Dennoch schonmal Danke für die Hilfe... Dere Eratum Edit: Kann ich ein und die selbe Datei gleichzeitig zum lesne und zum Schreiben öffnen? Edit2: Hab es inzwischen hinbekommen. Sollte es irgendwen mal interessieren: dim fsx,fs,ordner,name, DateiWrite dim filesystemobject dim strFalsePath strFalsePath="D:\Programme\SCC" '-----------------Scriptordner bestimmen------------- set fsx = CreateObject("Scripting.FilesystemObject") scriptname = Wscript.ScriptFullName scriptpath = fsx.getparentfoldername(scriptname) scriptpathnew = Left(scriptpath,Len(scriptPath)-1-(Len(scriptPath)-InstrRev(scriptpath,"\"))) '---------------------------------------------------- '---------------------------------------------------- set fs = CreateObject("Scripting.FileSystemObject") set ordner = fs.GetFolder(scriptpath) For each datei in ordner.Files Dateiname = datei.name if Dateiname <> "rename.vbs" then Set DateiRead = fs.OpenTextFile(Dateiname) inhalt = DateiRead.ReadAll if instr(inhalt,strFalsePath) <> 0 then DateiRead.close inhalt = Replace(inhalt,strFalsePath,scriptPathnew) fs.DeleteFile(Dateiname) Set DateiWrite = fs.OpenTextFile(Dateiname,8,true) DateiWrite.write inhalt DateiWrite.close end if end if Next set fs=nothing set fsx=nothing set ordner=nothing Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.