Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FTP Upload per Batchscript (https://www.delphipraxis.net/153748-ftp-upload-per-batchscript.html)

jfheins 16. Aug 2010 16:02

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:
@echo off
SET /P x=Bitte Passwort eintippen:
echo %x%
pause
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:

Luckie 16. Aug 2010 19:03

AW: FTP Upload per VBScript
 
Ich habe eine Batch-Datei mit folgendem Inhalt:
Code:
ftp /s:backup.ftp
Und die backup.ftp enthält obigen Code.

jfheins 16. Aug 2010 20:00

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:
@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
keine Leerzeichen vor den ">>" einfügen - zummindest nicht beim Passwort ;)

Grausig anzuschauen, aber es geht :mrgreen:

Luckie 17. Aug 2010 09:11

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.

Luckie 18. Aug 2010 21:21

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 ***************************************************************************

SirThornberry 18. Aug 2010 21:25

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.

Luckie 18. Aug 2010 21:32

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. ;)

Namenloser 18. Aug 2010 21:34

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

Luckie 19. Aug 2010 14:28

AW: FTP Upload per VBScript
 
Zitat:

Zitat von NamenLozer (Beitrag 1043210)
Als Denkanstoß: Du kannst die Batch-Datei intern mit einem bestimmten Parameter aufrufen, um Funktionsaufrufe zu simulieren.

Das wusste ich noch nicht. Mal sehen, wie ich das optimiere, wenn ich wieder dauerhaft Internet habe.

Luckie 29. Nov 2011 08:30

AW: FTP Upload per VBScript
 
So, ich bin jetzt dabei das Script zu optimieren. Was ich jetzt habe ist folgendes:
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


: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
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:56 Uhr.
Seite 2 von 3     12 3      

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