VBS | Verzeichnis durchsuchen und bestimmte Dateien finden

  • VBScript

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

    VBS | Verzeichnis durchsuchen und bestimmte Dateien finden

    Hallo,

    ich möchte mit VBScript eine Programm.exe aufrufen, und die zu bearbeiteten Dateien (z.B. txt) sollen mit diesen Programm geladen werden.
    Des Weiteren werden Tastaturbefehle der Programm.exe mit der geladene Datei übergeben.

    Beispiel:
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "Programm.exe /xx C:\Pfad\xy.txt", 9
    WshShell.SendKeys "+^{S}"

    Das ist soweit auch möglich. Die TXT wird in den Programm geladen, und die deklarierten Tastaturbefehle werden übergeben.

    Wie wäre es möglich ein Verzeichnis mit Unterverzeichnisse vollständig nach z.B. TXT zu durchsuchen, und
    die gefundenen Dateien werden anschließend nacheinander mit der Programm.exe geladen, um SendKeys auszuführen (wie oben).

    Leider bin ich ein absoluter Neuanfänger mit VBScript, daher hoffe ich auf eure Hilfe. Danke im Voraus.
    Das Verfahren nennt sich rekursiver Aufruf

    Visual Basic-Quellcode

    1. ​Set FS=CreateObject("Scripting.FileSystemObject")
    2. Set WshShell = WScript.CreateObject("WScript.Shell")
    3. ProcessFolder FS.GetFolder("C:\xyz")
    4. Sub ProcessFolder (Folder)
    5. For Each Fld in Folder.SubFolders
    6. ProcessFolder Fld
    7. Next
    8. For Each File In Folder.Files
    9. If Instr(1, File.Name, ".txt", vbTextCompare ) > 0 Then
    10. WshShell.Run "Programm.exe /xx " & File.Path", 9
    11. End If
    12. Next
    13. End Sub
    Ich frage mich bloß, was du mit dem SendKeys rum machst.
    Ist das ein Programm, das du selbst geschrieben hast?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Super- Vielen Dank "petaod" für dein Script!
    Es hat mir schon etwas weitergeholfen, leider werden aber nicht die gefundenen .txt Dateien an das Programm übergeben.
    Die Programm.exe startet zwar (auch in der Zahl der gefundenen Dateien), aber die .txt Datei wird nicht in das Programm geladen (Hinweis: Wird nicht gefunden).

    Führe ich wie oben beschrieben:
    WshShell.Run "Programm.exe /xx C:\Pfad\xy.txt", 9
    aus und der Pfad wird manuell eingetragen, dann ist das kein Problem.

    Es scheint mit:
    WshShell.Run "Programm.exe /xx " & File.Path", 9
    (abgesehen von den fehlenden " ) -> File.Path nicht richtig deklariert ist.

    Hast Du vielleicht noch eine Lösung? - Wäre wirklich sehr hilfreich.
    Das mit den SendKeys ist nebensächlich, und funktioniert auch soweit. Das Programm hab ich nicht
    geschrieben, vielmehr geht es darum viele Dateien die ich nicht alle manuell öffnen möchte automatisch zu bearbeiten bzw. zu ändern.