VBA - BAT Datei abfrage kann FTP Script nicht laden

  • Excel

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Martin1337.

    VBA - BAT Datei abfrage kann FTP Script nicht laden

    • Hallo zusammen,

    ich hoffe ihr könnt mir helfen.

    Ich habe eine BAT-Datei (Report.bat) die auf eine Scriptdatei (nennen wir sie test.txt) zugreift und somit den Zugang zu einem FTP Server herstellt und sich aktuelle Daten zieht und downloaded. (Funktioniert ohne Probleme bei der Ausführung)

    Jetzt möchte ich allerdings diese BAT Datei mit Excel VBA öffnen und erhalte leider die Meldung das dass Script test.txt nicht geladen werden konnte.

    Hier mal die einzelnen Codes:

    Report.BAT-Datei:
    @echo off
    ftp.exe -s:test.txt
    pause
    exit

    test.txt:
    open servername
    Benutzername
    Password
    cd /files/ediout/
    get "report.txt"
    bye

    und zu guter letzt noch VBA:
    Shell "S:\...\FTP Abfrage\Report.bat"


    Ich versteh nicht ganz wieso die BAT Datei funktioniert, aber in einer VBA Oberfläche nicht. Anbei ein Screenshot der zeigt was im CMD Fenster angezeigt wird.

    Könnt ihr mir eventuell eine Lösung geben? Oder kann man dies mit Hilfe anderere Hilfsmittel umgehen? Wichtig ist dass der benutzer dann nur noch im Excel das VBA Makro laufen lassen muss ohne zusätzlich noch die BAT Datei ausführen zu müssen.

    Vielen Dank im Voraus.

    Gruß Martin
    Bilder
    • Screenshot.jpg

      144,96 kB, 677×510, 183 mal angesehen

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

    Es könnte ein Problem mit dem Working Directory der Shell sein.

    Probier mal

    Visual Basic-Quellcode

    1. theDir = "Pfad wo die Batch drin liegt"
    2. Set objSh = WScript.CreateObject("WScript.Shell")
    3. objSh.CurrentDirectory = theDir
    4. objSh.Run "S:\...\FTP Abfrage\Report.bat"


    Alternativ gibt es

    Visual Basic-Quellcode

    1. ChDir "Pfad wo die Batch drin liegt"
    in Excel (direkt vor dem Shell Befehl ausführen). Geht vll auch.
    Das ist meine Signatur und sie wird wunderbar sein!
    Guten Morgen zusammen,

    leider funktioniert keine der Vorschläge.

    Die Zeile
    Set objSh = WScript.CreateObject("WScript.Shell")
    verursacht im Debugger immer eine Fehlermeldung "Objekt erforderlich".

    auch dein Alternativ Code mit ChDir ging nicht. Dann kommt wieder "Fehler beim Öffnen der Scriptdatei Report.txt (auch wenn ich in der BATCH Datei "cd %~dp0" einfüge besteht der Fehler weiterhin.

    Hab ich irgendwas vergessen zu beachten?

    Gruß Martin
    Hi @petaod,

    das habe ich auch schon probiert, allerdings steht -s: für den Dateinamen und nicht für einen Pfad.
    Wenn der Pfad angegeben wird dann läuft die batch Datei in einen Fehler.

    Gruß Martin

    *UPDATE*
    Ich habe die Lösung gefunden. Ich habe nach dem Befehl:

    Shell ("S:\...\Report.bat")

    einfach eine 10 Sekunden pause eingebaut mit

    Application.Wait Now + TimeSerial(0, 0, 10)

    Dadurch hat die Batch Datei Zeit zu arbeiten (bei mir ca. 4 Sekunden was die Bat Datei benötigt)
    Dann hat alles einwandfrei funktioniert. :)

    Gruß Martin

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