FTP Login mit Abfragen
Moin ihr Batch kundigen, ich brauchte mal etwas Hilfe von euch, da ich mich mit dieser Materie überhaupt nicht auskenne.
ich brauche eine Batch-Datei welche folgendes macht:
FTP-Verbindung zu einem bestimmten Server herstellt und dann erstmal aktiv nach Benutzer und Passwort fragt (Benutzername und Passwort sollen aus Sicherheitsgründen nicht fest hinterlegt sein), dann soll automatisch lokal und auf dem Server automatisch in ein Bestimmtes Verzeichnis gewechselt werden, dann soll eine Datei abgeholt werden (get), es soll aber aktiv nach dem Dateinamen gefragt werden.
dies wird täglich Manuel immer gemacht und um dies etwas zu verkürzen wäre so eine Batch-Datei denke ich sehr sinnvoll.
ich brauche eine Batch-Datei welche folgendes macht:
FTP-Verbindung zu einem bestimmten Server herstellt und dann erstmal aktiv nach Benutzer und Passwort fragt (Benutzername und Passwort sollen aus Sicherheitsgründen nicht fest hinterlegt sein), dann soll automatisch lokal und auf dem Server automatisch in ein Bestimmtes Verzeichnis gewechselt werden, dann soll eine Datei abgeholt werden (get), es soll aber aktiv nach dem Dateinamen gefragt werden.
dies wird täglich Manuel immer gemacht und um dies etwas zu verkürzen wäre so eine Batch-Datei denke ich sehr sinnvoll.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167847
Url: https://administrator.de/forum/ftp-login-mit-abfragen-167847.html
Ausgedruckt am: 12.05.2025 um 07:05 Uhr
11 Kommentare
Neuester Kommentar
Aloha,
nö, macht keinen Sinn für mich - Filezilla auf, Anmelden, das bestimmte Verzeichnis lässt sich bereits vorher definieren und dann kann man die Datei auch dort auswählen und herunterladen ...
Wenn man noch manuell alles eingeben soll (vorallem Abfrage des Dateinamen ...) dann sehe ich keinen Sinn für eine Batchdatei hier.
greetz André
nö, macht keinen Sinn für mich - Filezilla auf, Anmelden, das bestimmte Verzeichnis lässt sich bereits vorher definieren und dann kann man die Datei auch dort auswählen und herunterladen ...
Wenn man noch manuell alles eingeben soll (vorallem Abfrage des Dateinamen ...) dann sehe ich keinen Sinn für eine Batchdatei hier.
greetz André
Aloha,
es geht auch per Firefox FireFTP plugin also ohne extra FTP-Clientprogramm aber gerade die Auswahl der gewünschten Datei sollte doch per drag&drop einfacher laufen, denke ich.
Also ich habe es doch richtig interpretiert, dass der User den Dateinamen selber eingeben soll, oder soll eine Verzeichnisabfrage gestartet werden, woraus der User dann z.B. per zugeordneter Zahl die Wahl hat?
greetz André
es geht auch per Firefox FireFTP plugin also ohne extra FTP-Clientprogramm aber gerade die Auswahl der gewünschten Datei sollte doch per drag&drop einfacher laufen, denke ich.
Also ich habe es doch richtig interpretiert, dass der User den Dateinamen selber eingeben soll, oder soll eine Verzeichnisabfrage gestartet werden, woraus der User dann z.B. per zugeordneter Zahl die Wahl hat?
greetz André
Hallo Magnifico,
teste mal das hier:
Die Verbindung wird zweimal hergestellt. Beim ersten mal wird nur das gewünschte Remoteverzeichnis angezeigt. Dann Dateiname einlesen, ein zweites Mal die Verbindung herstellen und downloaden.
Die Variablen in den Zeilen 7 bis 9 an Deine Bedürfnisse anpassen. Dabei ist der Slash statt dem Backslash im Remote-Verzeichnispfad zu beachten.
Sollte es sich bei der Datei um eine Textdatei handeln, sollte das
Gruß
Friemler
teste mal das hier:
@echo off
setlocal
cls
set "FTPServer=ftp.DerServer.Domain"
set "RemoteDir=Das/Remote-Verzeichnis"
set "LocalDir=Das\Lokale Verzeichnis"
set "FTPGetDir=%TEMP%\ftpcmd.txt"
set "FTPGetFile=%TEMP%\ftpcmd.txt"
set /p "Usr=Benutzername: "
set /p "Pwd=Passwort : "
echo.
> "%FTPGetDir%" echo open %FTPServer%
>>"%FTPGetDir%" echo user %Usr% %Pwd%
>>"%FTPGetDir%" echo ascii
>>"%FTPGetDir%" echo cd "%RemoteDir%"
>>"%FTPGetDir%" echo ls -l
>>"%FTPGetDir%" echo bye
ftp -v -n -s:"%FTPGetDir%"
del "%FTPGetDir%"
echo.
set /p "File=Dateiname: "
> "%FTPGetFile%" echo open %FTPServer%
>>"%FTPGetFile%" echo user %Usr% %Pwd%
>>"%FTPGetFile%" echo binary
>>"%FTPGetFile%" echo cd "%RemoteDir%"
>>"%FTPGetFile%" echo get "%File%" "%LocalDir%\%File%"
>>"%FTPGetFile%" echo bye
ftp -v -n -s:"%FTPGetFile%"
del "%FTPGetFile%"
Die Verbindung wird zweimal hergestellt. Beim ersten mal wird nur das gewünschte Remoteverzeichnis angezeigt. Dann Dateiname einlesen, ein zweites Mal die Verbindung herstellen und downloaden.
Die Variablen in den Zeilen 7 bis 9 an Deine Bedürfnisse anpassen. Dabei ist der Slash statt dem Backslash im Remote-Verzeichnispfad zu beachten.
Sollte es sich bei der Datei um eine Textdatei handeln, sollte das
binary
in Zeile 34 durch ascii
ersetzt werden, dann werden Zeilenumbrüche ins Windowsspezifische Format konvertiert. Der Übertragungsmodus ist standardmäßig zwar sowieso ASCII, aber ohne die Befehle zur Umschaltung hat bei meinem Test mit dem AVM-FTP-Server der Verzeichniswechsel nicht funktioniert. Anscheinend wird nach dem Login noch eine kurze Verzögerung benötigt.Gruß
Friemler
Aloha Magnifico und Friemler, da war man mal eben Mittag essen *pfeif*
nun ich gehe davon aus, er weiß, wo er hinwill und gibt das vor,
Editiere die Pfade, speichere die .bat (oder .cmd) und vermeide Umlaute
greetz André
edit: binary und so ...
nun ich gehe davon aus, er weiß, wo er hinwill und gibt das vor,
dann soll automatisch lokal und auf dem Server automatisch in ein Bestimmtes Verzeichnis gewechsel
daher:@echo off & setlocal
set "log=%temp%\aktiv.ftp"
echo Bitte geben Sie den FTP-Benutzernamen ein:
set /p "login="
echo(
echo Bitte geben Sie das Passwort ein:
set /p "pwd="
echo(
echo Bitte geben Sie den Dateinamen ein:
set /p "Datei="
echo(
(echo open ftp.diegewuenschtedomain.de
echo %login%
echo %pwd%
echo binary
echo cd "www/htdocs/downloads"
echo lcd "E:/Test"
echo get "%Datei%"
echo bye)>"%log%"
echo Starte FTP-Transfer . . .
ftp -s:"%log%"
echo Fertig.
del "%log%"
pause
goto :eof
open ftp.diegewuenschtedomain.de
= ist klar, oder?cd "www/htdocs/downloads"
= Der Pfad im FTPlcd "E:/Test"
= Der lokale PfadEditiere die Pfade, speichere die .bat (oder .cmd) und vermeide Umlaute
greetz André
edit: binary und so ...
Aloha,
das ist bei Friemler nicht anders (vorweg gesagt) und es ist auch nicht vermeidbar, da
Funktioniert nicht, weil ab dem Befehl ftp, die Batch nicht mehr greift.
Die temporäre Logdatei wird ja gleich nach der Benutzung wieder gelöscht und wenn du ohne arbeiten willst, dann nur über die cmd mit aktiver Steuerung (also ohne batch)
greetz André
das ist bei Friemler nicht anders (vorweg gesagt) und es ist auch nicht vermeidbar, da
ftp
eigenständig arbeitet und per batch dann nur ftp -s:DateimitallenbenötigtenInhalten.ftp
zulässt - sprich:ftp
open ftp.domain.de
username
password
etc.
Die temporäre Logdatei wird ja gleich nach der Benutzung wieder gelöscht und wenn du ohne arbeiten willst, dann nur über die cmd mit aktiver Steuerung (also ohne batch)
greetz André
Hallo Magnifico,
schau Dir mal die NcFTP-Suite an. Darin ist
Gruß
Friemler
schau Dir mal die NcFTP-Suite an. Darin ist
NcFTPGet
enthalten. Dieses Konsolenprogramm ist nur zum schnellen Download einer Datei gedacht und man kann Benutzer und Passwort als Parameter übergeben => Kein Anlegen einer Datei mit FTP-Kommandos erforderlich, daher können Benutzer und Passwort direkt aus den eingelesenen Variablen übergeben werden.Gruß
Friemler