Alle Textdateien in allen Unterordnern concatenieren

  • VBScript

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Alle Textdateien in allen Unterordnern concatenieren

    Hallo zusammen,

    ich war heute schon länger auf der Suche nach einem VBScript, das mir etwas Arbeit abnimmt, hab aber leider nichts so spezifisches gefunden wie ich es mir wünsche, deshalb wäre ich sehr glücklich falls mir hier jemand helfen kann.

    Mein Problem ist folgendes, dass ich eine Menge Textdateien habe (.txt) die in vielen verschiedenen Unterordnern liegen (haben alle einen einzigen Überordner mit einem Beispielpfad von "C:\Testordner"). In diesem Ordner können beliebig viele Textdateien liegen und auch Dateien anderer Typen,d.h. eine Filterung ist notwendig. Mein Problem ist jetzt, dass ich gerne den Inhalt aller Textdateien in den Unterordnern vom Testordner als 1 Textdatei im Ordner Testordner hätte, welche ich dann manuell weiter auswerte. Die Ordnertiefe ist immer genau 1.

    Um das ganze etwas anschaulicher zu machen ein kleines Beispiel:
    Ordnerstruktur ist folgende:
    Im Ordner C:\Testordner befinden sich 2 weitere Ordner Test1 und Test 2 mit jeweils einer Textdatei Textdatei1.txt und Textdatei2.txt. Den Inhalt dieser beiden Dateien hätte ich gerne in einer Datei die Zusammenfassung.txt heißt und im Ordner Testordner liegt.

    Ich denke soetwas Umzusetzen dürfte kein großer Aufwand sein, leider bin ich bisher in dem Thema nicht so bewandert und würde mich über eure Hilfe sehr freuen.

    Mit freundlichen Grüßen
    Tarvinia

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tarvinia“ ()

    Deffiniere was du mit einfacher Anwednung meinst?

    Das Problem ist, dass das ganze in einem relativ Streng regelementierten Teil des Hochschulnetzwerkes ausgeführt werden soll und ich nicht weiß was die Benutzersteuerung alles unterbindet... Das VB-Skripte laufen weiß ich, weil da schon ein paar laufen, wie das mit allem anderen aussieht weiß ich nicht. Auf dem Rechner hab ich auch keine Adminrechte...
    Habe gerade nur kurz Zeit, aber ich habe hier mal die wichtigsten Snippets herausgesucht.

    Rekursives Durchsuchen des Ordners:

    Quellcode

    1. recursive “C:\windows”
    2. function recursive(strDir)
    3. set f = createobject(“scripting.filesystemobject”)
    4. set d = f.getfolder(strDir)
    5. for each file in d.files
    6. wscript.echo file
    7. next
    8. for each folder in d.subfolders
    9. recursive folder
    10. for each file in d.files
    11. wscript.echo file
    12. next
    13. next
    14. end function


    Datei lesen

    Quellcode

    1. strdatei="c:\test\test.txt"
    2. Const ForReading = 1
    3. Set objFSO = CreateObject("Scripting.FileSystemObject")
    4. Set objTest = objFSO.GetFile(strdatei)
    5. If objTest.Size > 0 Then
    6. Set objFile = objFSO.OpenTextFile(strdatei, ForReading)
    7. strText = objFile.ReadAll
    8. wscript.echo strText
    9. objFile.Close
    10. end if


    Musst du eigentlich nur verschachteln, indem du jede Datei in einen globalen String dranhänst.
    Einfacher CMD-Befehl
    FOR /D %a IN (C:\Testordner\) DO TYPE %a\*.txt >> c:\Testordner\GesammelteWerke.txt
    Oder, falls du das in eine Batch-Datei reinpackst, musst du die Prozente verdoppeln:
    FOR /D %%a IN (C:\Testordner\) DO TYPE %%a\*.txt >> c:\Testordner\GesammelteWerke.txt
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --