![]() |
FTP Upload per Batchscript
Kennt jemand eine Möglichkeit per VBScript eine Datei auf einen Server hochzuladen? Mit Google habe ich bisher nur wege gefunden die ein externes ActiveX Object nutzen. Gibt es auch eine Möglichkeit nur mit Windows Bordmitteln?
|
AW: FTP Upload per VBScript
Könntest du nicht einfach das Kommandozeilen-FTP-Program aufrufen, das bei Windows mitgeliefert wird?
|
AW: FTP Upload per VBScript
Der IE/Explorer kann FTP (OK, ab IE7 gibt es manchmal Progbleme und nur Lesezugriff, aber theoretisch geht es)
![]() Und konnte man nicht auch irgendwo im Explorer Server/FTP-Verbindungen als Verzeichnis anlegen? (irgendwo in dem ganzen Netzwerkzeugs) Und wie wäre es mit FileZillaPortable? |
AW: FTP Upload per VBScript
Wie gesagt, ich wollte es mit Windows Bordmitteln machen.
Den Konsolen FTP-Client nutze ich zur Zeit nur leider muss man da das Passwort im Klartext in dem Skript hinterlegen. Das stört mich schon die ganze Zeit. Mit einem VB Script könnte ich eine Passwortabfrage einbauen und könnte das ein oder andere komfortabler lösen, wie zum Beispiel eine Dateiauswahl usw. Denn zur Zeit werden immer alle Dateien per FTP als Backup übertragen:
Code:
Da die Dateien mittlerweile recht groß sind, dauert dies unnötig lange, wenn ich Dateien hochladen, die sich nicht geändert haben.
open server.de
benutzer passowrt2 hash binary cd html/Privat/backup lcd "d:\Michael\eigene Dateien" put "Abrechnungen.7z" put "Briefe.7z" put "Tagebuch2010.7z" put "Dokumente.7z" close quit |
AW: FTP Upload per VBScript
Du kannst ja mal die Windows Powershell ausprobieren ;)
Hab gerade mal ein bisschen rumprobiert, und wenn man das hier ausführt bekommt man schonmal n DirectoryListing :-D
Code:
Das Passwort vorher abzufragen überlasse ich jetzt mal dem geneigten Leser :mrgreen:
$x = [System.Net.FtpWebRequest]::Create("ftp://user:pwd@server.de")
$x.method = [System.Net.WebRequestMethods+Ftp]::ListDirectory $y = [net.ftpwebresponse]$x.getresponse() $z = (new-object IO.Streamreader $y.GetResponseStream()).readtoend() $z |
AW: FTP Upload per VBScript
Ach du meine Güte. Sieht für mich ziemlich unverständlich aus, was da passiert.
|
AW: FTP Upload per VBScript
Äh ja okay, ich hab das halt so (ohne Vorkenntnisse) zusammengeschrieben *g*
Die PowerShell basiert auf dem .net Framework und ist dadurch deutlich mächtiger als die alte Kommandozeile. Mit ein bisschen Gewöhnung klappt das schon ;) Was passiert: Es wird ein FtpWebRequest erstellt ( ![]() In C# sieht das so aus:
PHP-Quellcode:
Vielleicht ist das etwas verständlicher :)
var x = FtpWebRequest.Create("ftp://user:pwd@example.com");
x.Method = WebRequestMethods.Ftp.ListDirectory; var resp = x.GetResponse() as FtpWebResponse; var answer = new StreamReader(resp.GetResponseStream()).ReadToEnd(); Console.WriteLine(answer); |
AW: FTP Upload per VBScript
Hallo,
bin vor kurzem mal auf AutoIT gekommen, eine Scriptsprache zur Automatisierung von Windows. Ist relativ einfach, es gibt einen GUI-Builder (sieht aus wir ein extrem abgespecktes Delphi 7) und Compiler dafür der Exe-Dateien erzeugt. Gruß Ralf |
AW: FTP Upload per VBScript
Danke, ich miss mir das noch mal durch den Kopf gehen lassen. Eventuell schreibe ich mir auch ein kleines Programm in Delphi oder C#.
|
AW: FTP Upload per VBScript
Ok, dann mal anders. Gibt es bei dem Script für die ftp.exe
Code:
eine Möglichkeit das Passwort abzufragen, so dass man es nicht hardcodieren muss?
open server.de
benutzer passwort hash binary cd html/Privat/backup lcd "d:\Michael\eigene Dateien" put "Abrechnungen.7z" put "Briefe.7z" put "Tagebuch2010.7z" put "Dokumente.7z" close quit |
AW: FTP Upload per VBScript
Du könntest das in eine Batchdatei verfrachten (oder isses da schon drin?) und dann so ungefähr abfragen:
Code:
Bzw. erst in einer Batchdatei abfragen, dann eine Datei mit den befehlen ins temp Verzeichnit, ftp.exe mit der -s Option starten und dann die Dstei wieder löschen :stupid:
@echo off
SET /P x=Bitte Passwort eintippen: echo %x% pause |
AW: FTP Upload per VBScript
Ich habe eine Batch-Datei mit folgendem Inhalt:
Code:
Und die backup.ftp enthält obigen Code.
ftp /s:backup.ftp
|
AW: FTP Upload per VBScript
Okay, also hier ein Lösung mit dem Batchfile.
Es wird eine (temporäre) Datei geschriben, die dann an das FTP Programm übergeben wird. Danach wird die Datei wieder gelöscht. das Passwort ist also kurz auf der Festplatte, aber nicht permanent ;)
Code:
keine Leerzeichen vor den ">>" einfügen - zummindest nicht beim Passwort ;)
@echo off
SET /P x=Bitte Passwort eintippen: echo open server.de> x.txt echo username>> x.txt echo %x%>> x.txt echo hash>> x.txt echo binary>> x.txt echo cd />> x.txt echo dir>> x.txt echo close>> x.txt echo quit>> x.txt ftp /s:x.txt del x.txt pause Grausig anzuschauen, aber es geht :mrgreen: |
AW: FTP Upload per VBScript
Genial. Auf die Idee eine Datei temporär zu schreiben war ich auch schon gekommen, nur das man das auch mit Echo machen kann, war mit entfallen. Besten Dank. Das ist die Lösung.
|
AW: FTP Upload per VBScript
Inklusive Menü sieht das ganze jetzt so aus:
Code:
echo off
cls echo FTP Backup Script echo ================= echo. echo Zugangsdaten fuer zeus03.de echo ---------------------------- set /P user="Benutzer: " set /P pw="Passwort: " echo. rem Menü :MENU if EXIST script.ftp del script.ftp echo Dateiauswahl echo ------------ echo [1] Abrechnungen echo [2] Briefe echo [3] Dokumente echo [4] Privat echo [5] Tagebuch echo [6] Alle echo [0] Beenden echo. set asw=0 set /P asw="Auswahl: " if %asw%==0 goto :EOF if %asw%==1 goto ABR if %asw%==2 goto BRIEFE if %asw%==3 goto DOKS if %asw%==4 goto PRIVAT if %asw%==5 goto TAGEBUCH :ABR echo Uebtrage Abrechnungen auf Server... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Privat/backup>> script.ftp echo lcd "d:\Michael\eigene Dateien">> script.ftp echo put "Abrechnungen.7z">> script.ftp echo close>> script.ftp echo quit>> script.ftp ftp /s:script.ftp echo Loesche FTP-Scriptdatei... del script.ftp GOTO MENU rem *************************************************************************** :BRIEFE echo Uebtrage Briefe auf Sever... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Privat/backup>> script.ftp echo lcd "d:\Michael\eigene Dateien">> script.ftp echo put "Briefe2010.7z">> script.ftp echo close>> script.ftp echo quit>> script.ftp ftp /s:script.ftp echo Loesche FTP-Scriptdatei... del script.ftp GOTO MENU rem *************************************************************************** :DOKS echo Uebtrage Dokumente auf Server... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Privat/backup>> script.ftp echo lcd "d:\Michael\eigene Dateien">> script.ftp echo put "Dokumente.7z">> script.ftp echo close>> script.ftp echo quit>> script.ftp ftp /s:script.ftp echo Loesche FTP-Scriptdatei... del script.ftp GOTO MENU rem *************************************************************************** :PRIVAT echo Uebtrage Privat auf Server... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Privat/backup>> script.ftp echo lcd "d:\Michael\eigene Dateien">> script.ftp echo put "Privat.7z">> script.ftp echo close>> script.ftp echo quit>> script.ftp ftp /s:script.ftp echo Loesche FTP-Scriptdatei... del script.ftp GOTO MENU rem *************************************************************************** :TAGEBUCH echo Uebtrage Tagebuch auf Server... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Privat/backup>> script.ftp echo lcd "d:\Michael\eigene Dateien">> script.ftp echo put "Tagebuch2010.7z">> script.ftp echo close>> script.ftp echo quit>> script.ftp ftp /s:script.ftp echo Loesche FTP-Scriptdatei... del script.ftp GOTO MENU rem *************************************************************************** :ALLE echo Ubetrage alle Dateien auf Server... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Privat/backup>> script.ftp echo lcd "d:\Michael\eigene Dateien">> script.ftp echo put "Abrechnungen.7z">> script.ftp echo put "Briefe2010.7z">> script.ftp echo put "Dokumente.7z">> script.ftp echo put "Privat.7z">> script.ftp echo put "Tagebuch2010.7z">> script.ftp echo close>> script.ftp echo quit>> script.ftp ftp /s:script.ftp echo Loesche FTP-Scriptdatei... del script.ftp GOTO MENU rem *************************************************************************** |
AW: FTP Upload per VBScript
Du könntest das Script noch kürzen in dem du verbinden zum Server etc. was immer anfällt auch immer machst und nicht bei allen Varianten einzeln hinschreibst.
|
AW: FTP Upload per VBScript
An der Optimierung arbeite ich noch. Nur macht das Programmieren in der Lobby keinen richtigen Spaß und so was offline zu machen ist etwas blöd, wenn man nicht testen kann. Deswegen erst mal die quick and dirty Lösung für das langsame WLan hier. ;)
|
AW: FTP Upload per VBScript
Als Denkanstoß: Du kannst die Batch-Datei intern mit einem bestimmten Parameter aufrufen, um Funktionsaufrufe zu simulieren. Etwa so:
Code:
@echo off
REM Funktionsaufruf abfragen if %1==_connectftp goto ConnectFTP :Menu echo Menu echo ------------ echo [1] Case 1 echo [2] Case 2 echo. set asw=0 set /P asw="Auswahl: " if %asw%==1 goto Case1 if %asw%==2 goto Case2 goto Menu :Case1 REM Funktionsaufruf call %~dpnx0 _connectftp REM ... goto :End :Case1 REM Funktionsaufruf call %~dpnx0 _connectftp REM ... goto :End :ConnectFTP REM ... :End |
AW: FTP Upload per VBScript
Zitat:
|
AW: FTP Upload per VBScript
So, ich bin jetzt dabei das Script zu optimieren. Was ich jetzt habe ist folgendes:
Code:
Ich habe es etwas gekürzt hier dargestellt und nicht den Code für jeden Menüpunkt gepostet. Aber das Prinzip sollte klar sein. Wie kann ich das jetzt mit einem Funktionsaufruf lösen, dem ich Dateiname des Archivs und den Pfad, der zu packenden Dateien, übergebe? Das mit den Funktionsaufrufen ist mir noch nicht ganz klar.
rem Projekt : FTP-Backup
rem Autor : Michael Puff <mail@michael-puff.de> rem Datum : 2011-11-29 rem Beschreibung : Backupskript zur Übertragung von passwortgeschützen mit 7Zip gepackten rem Archiven auf einen FTP-Server. 7Zip muss vorhanden sein und im Suchpfad rem liegen. @echo off cls echo FTP Backup Script echo ================= echo. echo Zugangsdaten fuer zeus03.de echo ---------------------------- set /P user="Benutzer: " set /P pw="Passwort: " cls :PW echo Passwort fuer Archive echo --------------------- set /P pw1="Passwort: " cls set /P pw2="Passwort wiederholen: " if %pw1% == %pw2% ( cls goto MENU ) else ( echo "Passwoerter stimmen nicht ueberein" echo. goto PW ) rem Menü :MENU if EXIST script.ftp del script.ftp echo. echo Dateiauswahl echo ------------ echo [1] Abrechnungen echo [2] Briefe echo [3] Computer echo [4] Dokumente echo [5] Sonstige Dateien echo [6] Tagebuch echo [7] Vorlagen echo [0] Beenden echo. set asw=0 set /P asw="Auswahl: " if %asw%==0 goto :EOF if %asw%==1 goto ABR if %asw%==2 goto BRIEFE if %asw%==3 goto COMPUTER if %asw%==4 goto DOKS if %asw%==5 goto SONSTIGEDATEIEN if %asw%==6 goto TAGEBUCH if %asw%==7 goto VORLAGEN :SONSTIGEDATEIEN echo Sichere sonstige Dateien echo Packe sonstige Dateien... call 7z a d:\Computer\Sonstige_Dateien.zip "d:\Sonstige Dateien" -x!*.mp3 -r -mx9 -mmt -p%pw1% echo Uebtrage sonstige Dateien auf Server... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Admin/Backup>> script.ftp echo lcd "d:\Computer">> script.ftp echo put "Sonstige_Dateien.zip">> script.ftp echo close>> script.ftp echo quit>> script.ftp call ftp -s:script.ftp rem Aufräumen echo Loesche FTP-Scriptdatei... del script.ftp echo Löesche Archiv del Sonstige_Dateien.zip GOTO MENU rem *************************************************************************** :VORLAGEN echo Sichere Vorlagen echo Packe Vorlagen... call 7z a d:\Computer\Vorlagen.zip "d:\Vorlagen" -mx9 -mmt -p%pw1% dir *.zip /W echo Uebtrage Privat auf Server... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Admin/Backup>> script.ftp echo lcd "d:\Computer">> script.ftp echo put "Vorlagen.zip">> script.ftp echo close>> script.ftp echo quit>> script.ftp call ftp -s:script.ftp rem Aufräumen echo Loesche FTP-Scriptdatei... del script.ftp echo Loesche Archiv... del Vorlagen.zip GOTO MENU :EOF |
AW: FTP Upload per Batchscript
Hat sich erledigt. Ich habe eine andere Lösung gefunden:
Code:
rem Projekt : FTP-Backup
rem Autor : Michael Puff <mail@michael-puff.de> rem Datum : 2011-11-29 rem Beschreibung : Backupskript zur Übertragung von passwortgeschützen mit 7Zip gepackten rem Archiven auf einen FTP-Server. 7Zip muss vorhanden sein und im Suchpfad rem liegen. @echo off cls echo FTP Backup Script echo ================= echo. echo Zugangsdaten fuer zeus03.de echo ---------------------------- set /P user="Benutzer: " set /P pw="Passwort: " cls :PW echo Passwort fuer Archive echo --------------------- set /P pw1="Passwort: " cls set /P pw2="Passwort wiederholen: " if %pw1% == %pw2% ( cls goto MENU ) else ( echo "Passwoerter stimmen nicht ueberein" echo. goto PW ) rem Menü :MENU if EXIST script.ftp del script.ftp echo. echo Dateiauswahl echo ------------ echo [1] Abrechnungen echo [2] Briefe echo [3] Computer echo [4] Dokumente echo [5] Sonstige Dateien echo [6] Tagebuch echo [7] Vorlagen echo [0] Beenden echo. set asw=0 set /P asw="Auswahl: " if %asw%==0 goto :EOF if %asw%==1 goto ABR if %asw%==2 goto BRIEFE if %asw%==3 goto COMPUTER if %asw%==4 goto DOKS if %asw%==5 goto SONSTIGEDATEIEN if %asw%==6 goto TAGEBUCH if %asw%==7 goto VORLAGEN :ABR set DIRECTORY="d:\Abrechnungen" set FILENAME=Abrechnungen goto UPLOAD :BRIEFE set DIRECTORY="d:\Briefe" set FILENAME=Briefe goto UPLOAD :COMPUTER set DIRECTORY="d:\Computer" set FILENAME=Computer goto UPLOAD :DOKS set DIRECTORY="d:\Privat\Dokumente" set FILENAME=Dokumente goto UPLOAD :SONSTIGEDATEIEN set DIRECTORY="d:\Sonstige Dateien" set FILENAME=Sonstige_Dateien goto UPLOAD :TAGEBUCH set DIRECTORY="d:\Tagebuc" set FILENAME=Tagebuch goto UPLOAD :VORLAGEN set DIRECTORY="d:\Vorlagen" set FILENAME=Vorlagen goto UPLOAD :UPLOAD echo Sichere %FILENAME% echo Packe %FILENAME%... call 7z a d:\Computer\%FILENAME%.7z "%DIRECTORY%" -mx9 -mmt -p%pw1% -mhe -x!*.mp3 dir %FILENAME%.7z /W echo Uebtrage %FILENAME% auf Server... rem FTP-Scriptdatei erstellen echo open zeus03.de>> script.ftp echo %user%>> script.ftp echo %pw%>> script.ftp echo hash>> script.ftp echo binary>> script.ftp echo cd html/Admin/Backup>> script.ftp echo lcd "d:\Computer">> script.ftp echo put "%FILENAME%.7z">> script.ftp echo close>> script.ftp echo quit>> script.ftp call ftp -s:script.ftp rem Aufräumen echo Loesche FTP-Scriptdatei... del script.ftp echo Loesche Archiv... del %FILENAME%.7z GOTO MENU rem *************************************************************************** :EOF |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz