Script für jede Datei in einem Ordner anwenden

  • VBScript

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Sachsenbauch.

    Script für jede Datei in einem Ordner anwenden

    Hallo Gemeinde,
    wieder einal bin ich auf Eure Hilfe angewiesen.
    Und zwar habe ich ein Script, welches Textzeilen aus einer Datei ausliest und in eine andere gleichen Namens - aber andere Endung schreibt. Diese Script soll alle Dateien des aktuellen Ordners (also ohne spzielle Pfadangabe) durchlaufen. Und zwar werden Textauszüge aus einer .JSP-Datei in eine einfache .HTML-Datei geschrieben.
    Mein Script GRABLINESHTML.VBS sieht derzeit wie folgt aus:

    Visual Basic-Quellcode

    1. inPath=Inputbox("Name der Datei","zu HTML konvertieren","410.jsp")
    2. outPath=Left(inPath,3) & ".html"
    3. With CreateObject("Scripting.FileSystemObject")
    4. Set inFile = .OpenTextFile(inPath)
    5. Set outFile = .OpenTextFile(outPath, 2, True)
    6. End With
    7. outfile.WriteLine "<html><body><table border=1><TH colspan=4><b>"
    8. Do Until inFile.AtEndOfStream
    9. line = Trim(inFile.ReadLine)
    10. If Left(line, 66) = "<tr><td class=firstleft><a class=nowrap name=""zur&uuml;ck1"" href=#" Then
    11. outFile.WriteLine line
    12. ElseIf Left(line, 30) = "(Amtlicher Gemeindeschlüssel =" Then
    13. outFile.WriteLine line & "</b></TH>"
    14. ElseIf Left(line, 49) = "<tr><td class=firstleft><div class=eingerueckt>mä" Then
    15. outFile.WriteLine line
    16. ElseIf Left(line, 48) = "<tr><td class=firstleft><div class=eingerueckt>w" Then
    17. outFile.WriteLine line
    18. ElseIf Left(line, 68) = "<tr><td class=firstleft><a class=nowrap name=""zur&uuml;ck2"" href=#2>" Then
    19. outFile.WriteLine line
    20. ... ' dazwischen sind noch allerhand ElseIf-Blöcke
    21. Else If Left(line, 27) = "<tr><td class=firstleft>von" Then
    22. outFile.WriteLine line
    23. End if
    24. End if
    25. End if
    26. Loop
    27. outFile.Writeline "</table></body></html>"
    28. inFile.Close
    29. outFile.Close


    Wie kann ich das Script nun vereinfachen, das dies Ganze automatisch erfolgt. Über 120 Dateien mit Hand zu bearbeiten (und es kommen immer neue hinzu ...) ist mir doch etwas zu mühselig.
    Ein Ansatz:

    Visual Basic-Quellcode

    1. Dim FSO, FLD, FIL, TS
    2. Dim strFolder, strContent, strPath
    3. Const ForReading = 1, ForWriting = 2, ForAppending = 8
    4. 'anpassen auf aktuellen Ordner !
    5. strFolder = "."
    6. Set FSO = CreateObject("Scripting.FileSystemObject")
    7. set FLD = FSO.GetFolder(strFolder)
    8. For Each Fil In FLD.Files
    9. Set TS = FSO.OpenTextFile(fil.Path, ForReading)
    10. strContent = TS.ReadAll
    11. TS.Close
    12. Set WSHShell = CreateObject("WScript.Shell")
    13. WSHShell.Run("GRABLINESHTML.VBS", FIL)
    14. Set TS = FSO.OpenTextFile(fil.Path, ForWriting)
    15. TS.Write strContent
    16. TS.Close
    17. Next
    18. Set TS = Nothing
    19. Set FLD = Nothing
    20. Set FSO = Nothing

    Dann müsste aber in der GRABLINESHTML.VBS wohl die Inputbox raus und der Dateiname als Argument übergeben werden.
    Aber wie

    Vorerst danke ich erst einmal :|