bestimmter Dateityp per batch auf einen ftp laden und umbenennen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Ralle0190, 8. Dezember 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 8. Dezember 2007
    Hey Community
    Ich möchte einen Arbeitsschritt mittles batch Datei vereinfachen und zwar fallen bei mir alle Tage ein paar .JPG Dateien an die ich auf einen ftp hochladen möchte(anfallende ingame screens für die esl). Wenn möglich sollte es so funktionieren, wenn ich diese Batch Datei in einem bestimmten Ordner ausführe, diese .bat Datei alle ".JPG" dateien auf den vorgegebenen FTP hochläd und wenn möglich umbenennt zb in der reihenfolge 1,2,3 etc.

    Habe mich zwar schon etwas erkundigt aber bin auf noch keine funktionierendes batch gestoßen
    Ausporbiert ahbe ich auch, bin aber schnell gescheitert :/

    Wie müsste also zb die daten.ftp datei aussehen?

    ------------------------------------------------------------------------------------------


    jetzt connectet der zwar, aber wie wählt er alle.jpg zum hochladen aus?

    mit diesem Befhel whält er zwar die erste datei von diesem Format aus, jedoch bleibt es nur bei dem.

    put *.jpg

    iwe macht man das, dass er alle durchgeht und etwl die Bilder von de_aztec0000.jpg, de_aztec0001.jpg zu 1.jpg, 2.jpg umbenennt. Egal wenn die quelldateien so umbennent werden bzw nur die auf dem ftp

    mfg
    Ralph

    ---------------------------------------------------------------

    bisher sieht es so aus:

    screen.bat:

    @echo off
    echo --- starte FTP-Transfer der screens Datei ...
    ftp -s:screens.ftp
    echo --- screens hochgeladen.
    pause



    screens.ftp:

    OPEN ftpupload.esl.eu
    dieEmail@web.de
    1234512345
    put "*.jpg"
    disconnect
    quit
     
  2. 8. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    Dieses Script sollte es tun:

    Code:
    @echo off
    
    SET FTPFILE=ftp.fcd
    
    REM ### Ab hier nichts mehr ändern! ###
    
    SET verzpruef=verzpruef
    
    IF "%1"=="MAKEFTP" GOTO MAKEFTP
    
    "cmd.exe" /V:ON /Ce "%0" MAKEFTP
    GOTO USEFTP
    
    
    :MAKEFTP
    
    echo OPEN ftpupload.esl.eu > !FTPFILE!
    echo dieEmail@web.de >> !FTPFILE!
    echo 1234512345 >> !FTPFILE!
    
    SET n=0
    FOR %%i IN (*.jpg) DO (
     SET /a n=!n!+1
     echo put "%%i" "!n!.jpg" >> !FTPFILE!
    )
    
    echo disconnect >> !FTPFILE!
    echo quit >> !FTPFILE!
    
    GOTO :EOF
    
    
    :USEFTP
    ftp -s:%FTPFILE%
    GOTO END
    
    
    
    :END
    echo Erfolgreich durchgefuehrt. Bitte irgendeine Taste druecken zum beenden.
    pause > nul
    Angepasst werden muss:
    Im bereich "MAKEFTP" die Echos mit den passenden Daten.

    Angepasst werden sollte:
    SET FTPFILE=...
    auf eine beschreibbare Datei.

    Wenn's nicht geht, einmal oben das @echo off rausnehmen, und dann die meldungen posten.

    Wie's funktioniert? Nun, ich nehme eine FOR-Schleife die alle JPGs ("(*.jpg)") abklappert, und alle "PUT"-Befehle in einer Datei zwischenspeichert. Diese wird dann später aufgerufen, und fertig.

    Achso, Script benötigt 'ne aktuelle cmd.exe - XP und Vista tuen es, ob 2000 auch: k. a.

    Greetz Roog
     
  3. 8. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    muss das jetzt nur in eine .bat oder wie?
    ich ahbe leider nicht so viel durchblick, was genau zu tun ist :/

    auf jeden fall schonmal ein dickes danke an dich für die schnelle Lösung des Problemes, wenn du mir das nur noch etwas näher bringen könntest was ich genau machen muss wärst du ein GOtt für mich


    also, dass der bereich makeftp angepasst werden muss ist mir klar

    das sind ja sogesehen einzelne phasen die nacheinander per aufruf ausgeführt werden, und dass er in eine datei schreibt bei welchem n er schon ist, bis n den Punkt erreicht wo keine jpg datei mehr da ist

    dieser Eintrag GOTO :EOF finde ich den Inhalt für :EOF net, jedoch ist das schon alles was ich weiß...

    mfg Ralle
     
  4. 9. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    :EOF ist der Batch-Interne Zeiger für das Dateiende ("End Of File").

    Das Programm tut nix anderes, als sich selbst einmal aufzurufen (hat etwas damit zu tun, dass sonst die Variablen in der For-Schleife nicht erhöht werden können, ist aber zu kompliziert zu erklären), und dabei eine Datei (ftp.fcd, oder wie auch immer du sie nennen mögest) zu erstellen, welche alle FTP-Befehle einzeln enthält.

    An die Dateinamen kommen wir über eine FOR-Schleife.
    Code:
    FOR %%i IN (*.jpg) DO (
    ... Befehle ...
    )
    will heißen: Für jede Datei, für die die Maske *.jpg gillt, speicher deren Namen in der Variable %%i, und führe die folgenden Befehle aus. Dann kann der Dateiname einfach als %%i verwertet werden.
    Dann wird die Variable n für jede Datei um 1 erhöht, und fertig.

    Noch ein Hinweis:
    Um Probleme zu vermeiden, müsstest du den FTP-Client noch auf "Binärübertragung" einstellen. Das machst du, indem du nach dem Senden deines Passwortes (echo 1234512345 >> !FTPFILE!) die folgende Zeile einfügst:
    echo BIN >> !FTPFILE!

    Achso, ja, der gesamte Code muss nur in eine einzige Batchdatei. u. U. möchtest du den Bereich :END noch anpassen, dass da keine Pause ist, oder die temporäre FTP-Befehlsdatei gelöscht wird. Das ginge über:
    del %FTPFILE%

    Greetz Roog
     
  5. 9. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    @echo off

    SET FTPFILE=ftp.ftp

    REM ### Ab hier nichts mehr ändern! ###

    SET verzpruef=verzpruef

    IF "%1"=="MAKEFTP" GOTO MAKEFTP

    "cmd.exe" /V:ON /Ce "%0" MAKEFTP
    GOTO USEFTP

    :MAKEFTP

    echo OPEN ftpupload.esl.eu > !FTPFILE!
    echo 123@web.de >> !FTPFILE!
    echo 123 >> !FTPFILE!
    echo BIN >> !FTPFILE!

    SET n=0
    FOR %%i IN (*.jpg) DO (
    SET /a n=!n!+1
    echo put "%%i" "!n!.jpg" >> !FTPFILE!
    )

    echo disconnect >> !FTPFILE!
    echo quit >> !FTPFILE!

    GOTO :EOF


    :USEFTP
    ftp -s:%FTPFILE%
    GOTO END



    :END
    echo Erfolgreich durchgefuehrt. Bitte irgendeine Taste druecken zum beenden.
    del %FTPFILE%
    pause > nul



    dann kommt "der Befehl e ist entweder falsch geschrieben oder konnte nicht gefunden werden.
    ftp>"

    ??? weiß nicht wo er darauf trifft
     
  6. 9. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    Sry vertippt. Richtig müsste es so heißen:
    Code:
    "cmd.exe" /V:ON /C "%0" MAKEFTP
    ein tippfehler -> script im eimer xD

    Edit: Hab noch 'n paar Fehler gefunden: Vor den ">" und ">>"-Zeichen im makeftp-Bereich müssen die Leerzeichen weg, sonst schlägt der Login fehl!

    Edit2: So, jetzt nochmal die komplett fertige Batch:
    Code:
    @echo off
    
    SET FTPFILE=ftp.ftp
    
    REM ### Ab hier nichts mehr ändern! ###
    
    SET verzpruef=verzpruef
    
    IF "%1"=="MAKEFTP" GOTO MAKEFTP
    
    "cmd.exe" /V:ON /C "%0" MAKEFTP
    GOTO USEFTP
    
    :MAKEFTP
    
    echo OPEN ftpupload.esl.eu> !FTPFILE!
    echo 123@web.de>> !FTPFILE!
    echo 123>> !FTPFILE!
    echo BIN>> !FTPFILE!
    
    SET n=0
    FOR %%i IN (*.jpg) DO (
    SET /a n=!n!+1
    echo put "%%i" "!n!.jpg">> !FTPFILE!
    )
    
    echo disconnect>> !FTPFILE!
    echo quit>> !FTPFILE!
    
    GOTO :EOF
    
    
    :USEFTP
    ftp -s:%FTPFILE%
    GOTO END
    
    
    
    :END
    echo Erfolgreich durchgefuehrt. Bitte irgendeine Taste druecken zum beenden.
    del %FTPFILE%
    pause > nul
    Hope that it works now ^^

    greetz Roog
     
  7. 9. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    boar krass, vielen dank jetzt klappt es genau so wie ich es mir vorgestellt habe.
    Woher haste das eig gelernt, würde mich ma interessieren^^

    AUf jedenfall ein dickes Lob von mir an dieser Stelle, vielen Dank für deine Hilfe

    nur noch eine Frage:
    Wenn ich zb 4 Screens hochgeladen hab, kommen die bei dem FTP an und werden auch angezeit, wenn ich die jedoch zum match hinzufüge steht da "file not found"
    Liegt das etwl am Mode ich glaube man braucht für bestimmte dateitypen verschiede Modes
     
  8. 9. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    Ja das stimmt. ftp.exe ist standardmäßig auf Textübertragung eingestellt. Für Bilder geht das natürlich nicht.
    Allerdings hat Roogley das schon berücksichtigt. Der "echo BIN>> !FTPFILE!"-Befehl erledigt das umschalten.
     
  9. 9. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    hatte ich mir schon irgendwie gedacht. Leider scheint die .bat alles soweit hochzuladen wie man sich das wünscht, allerdings funzt es nicht mit dem esl ftpupload. Er zeigt zwar die dateien an, werden aber nicht so übertragen, dass man sie öffnen bzw runterladen kann.
    DAs liegt aber dann an der ESL, kann froh sein, das mir überhaupt so weit hier geholfen wurde
    Daher

    DICKES LOB AN IHN!
    frohe Weihnachten
     
  10. 9. Dezember 2007
    AW: bestimmter Dateityp per batch auf einen ftp laden und umbenennen

    [X] Erledigt.

    ~closed~

    Mfg,

    Kolazomai
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.