Subcommand für FTP

  • Hallo Forum.

    Ich hole mir von div. FTPs Dateien mit meinem AutoIt Skript ab, das klappt alles ganz hervorragend. Nun stehe ich aber vor einem neuen Problem:
    Mein "jetziger" FTP ist ein Host. Abgesehen davon, dass es dort keine Dateien/Verzeichnisse nach dem Windows-Schema gibt sondern nur Bibliotheken (das könnte man vllt. noch in Griff kriegen) muss ich VOR dem eigentlichen GET ein "quote site" Subcommand auf den FTP absetzen. Hierfür finde ich leider keine passende Funktion.

    Der Abruf per DOS-Box klappt übrigens 1a in etwa so:

    ftp 99.99.99.99
    User
    Passwort
    quote site SBDATACONN=(IBM-273,ISO8859-1)
    get 'XXXX.YYYY.ZZZZ.AAAA.B12345.C98765.D333E444' "Meine Datei.txt"
    Quit

    Weiß hier jemand Rat? Notfalls würde ich o.a. Abruf als temp. Batch-Datei mit AutoIt schreiben, dann von dort aufrufen und danach wieder löschen - aber so wirklich schön ist das auch nicht...

    Danke und Grüße, Alex

  • Hallo progandy

    Oooh jeeeh, ich weiß gar nicht, wie oft ich in der FTP_Ex nach diesem bzw. "so einem" Befehl gesucht habe... :whistling:

    Nun ja, ich versuch es nun also damit mal und melde mich später nochmals.

    Danke schonmal!

    Grüße Alex

  • Hallo Forum.

    Na gut, etwas viel "später"... :)

    Ein Problem gelöst, und schon kommt das nächste:

    Der Tip von progandy war erst mal goldrichtig, denn mit

    Code
    $Open = _FTPOpen("MyFTP")
    $Conn = _FTPConnect($Open, $FTP, $USR, $PWD)
    _FTPCommand($Conn, "site SBDATACONN=(IBM-273,ISO8859-1)")
    $FTPG = _FTPGetFile($Conn, $GetFile, $DestFile)
    $FTPC = _FTPClose($Open)


    funktioniert nun der Download - SUPER! Weniger gut ist, dass die Datei binär (habs manuell getestet) übertragen wird und so bei mir nur Kauderwelsch ankommt.

    Kein Problem dachte ich mir, ein

    Code
    _FTPCommand($Conn, "ascii")


    nach dem ersten sollte helfen. Dies hat jedoch keinerlei Auswirkung. Ich hab's dann u.a. mit

    Code
    _FTPCommand($Conn, "TYPE A")


    versucht, aber auch das (sowie geschätzt 10 weitere Versuche) bleibt erfolglos.

    "Ägerlicherweise" stehen im Header der FTP_Ex zwar mehrere Konstanten wie

    Code
    $FTP_TRANSFER_TYPE_ASCII


    deren Gebrauch und v.a. exakte Syntax ist aber leider nirgends dokumentiert... (zumindest hab' ich nichts gefunden)

    Daher meine Frage? Wie schalte ich denn die Dateiübertragung von Binär auf ASCII um???

    Bin für jegliche Art von Tipp dankbar.

    Grüße Alex

    PS: Folgendes Vorgehen per MS-FTP liefert reproduzierbar die falsche binär übertragene Datei:

    ftp 99.99.99.99
    User
    Passwort
    quote site SBDATACONN=(IBM-273,ISO8859-1)
    binary
    get 'XXXX.YYYY.ZZZZ.AAAA.B12345.C98765.D333E444' "binary.txt" -> falsch und exakt die gleiche Datei wie mit o.a. Vorgehen
    ascii
    get 'XXXX.YYYY.ZZZZ.AAAA.B12345.C98765.D333E444' "ascii.txt" -> richtig
    Quit

  • Hi, erst mal solltest du auf die FTPEx.au3 umsteigen, die bei AutoIt bereits dabei ist.

    Dann hat die Funktion mehrere Parameter, einer davon heißt $l_Flags. Hier kannst du den transfertyp einstellen.

    [autoit]

    _FTP_FileGet
    ; Hilfe verweist für diesen parameter auf die Beschreibung von:
    _FTP_FileOpen

    [/autoit]