So laden Sie Dateien von einer FTP-Site in einer Befehlszeile ohne Benutzerinteraktion herunter (Windows)

So laden Sie Dateien von einer FTP-Site in einer Befehlszeile ohne Benutzerinteraktion herunter (Windows)

Ich weiß, dass es einen FTP-Befehl gibt, der von der Befehlszeile unter Windows aus ausgeführt werden kann und eine Datei von einer FTP-Site herunterlädt. Benutzer + Passwort werden in „diesem“ einzeiligen Befehl angegeben. Diese Optionen + Passwortweiterleitung sollten in dieser Befehlszeile stehen.

echo open 192.168.1.64 21> ftp.txt
echo anonymous>> ftp.txt
echo [email protected]>> ftp.txt
echo bin >> ftp.txt
echo get test.txt >> ftp.txt
echo bye >> ftp.txt

ftp -s:ftp.txt

Antwort1

Versuche dies:Batchdateien - Unbeaufsichtigte FTP-Downloads

WGET ftp://ftp.mydomain.com/path/file.ext  

für anonyme Downloads

oder:

WGET ftp://user:[email protected]/path/file.ext  

wenn eine Authentifizierung erforderlich ist.


Wie @XavierStuvw durch Änderungen und Kommentare anmerkte, würde das Umwandeln WGETin Kleinbuchstaben wgetunter Linux funktionieren.

wget ftp://user:[email protected]/path/file.ext

Antwort2

Ich habe den Weg gefunden:

echo open 192.168.0.1 >> ftp &echo user admin w00t >> ftp &echo binary >> ftp &echo get file.zip >> ftp &echo bye >> ftp &ftp -n -v -s:ftp &del ftp

Antwort3

Beachten Sie, dass Sie die Syntax eines Befehls in DOS mit dem Schalter /? abfragen können. Beispiel:

C:\>ftp /?

Überträgt Dateien von und zu einem Computer, auf dem ein FTP-Serverdienst läuft
(manchmal auch Daemon genannt). FTP kann interaktiv verwendet werden.

FTP [-v] [-d] [-i] [-n] [-g] [-s:Dateiname] [-a] [-A] [-x:Sendepuffer] [-r:Empfangspuffer
fer] [-b:asyncbuffers] [-w:Fenstergröße] [Host]

  -v Unterdrückt die Anzeige von Remote-Server-Antworten.
  -n Unterdrückt die automatische Anmeldung bei der ersten Verbindung.
  -i Schaltet die interaktive Eingabeaufforderung bei der Ausführung mehrerer Dateien ab.
                  Überweisungen.
  -d Aktiviert das Debuggen.
  -g Deaktiviert das Globbing von Dateinamen (siehe Befehl GLOB).
  -s:Dateiname Gibt eine Textdatei mit FTP-Befehlen an.
                  Befehle werden automatisch ausgeführt, nachdem FTP gestartet ist.
  -a Verwenden Sie beim Binden einer Datenverbindung eine beliebige lokale Schnittstelle.
  -Eine Anmeldung als anonymer Benutzer.
  -x:send sockbuf Überschreibt die Standardgröße von SO_SNDBUF von 8192.
  -r:recv sockbuf Überschreibt die Standardgröße von SO_RCVBUF von 8192.
  -b:async count Überschreibt den standardmäßigen asynchronen Zähler von 3
  -w:Fenstergröße Überschreibt die standardmäßige Übertragungspuffergröße von 65535.
  host Gibt den Hostnamen oder die IP-Adresse des Remote-
                  Host, mit dem eine Verbindung hergestellt werden soll.

Anmerkungen:
  - mget- und mput-Befehle verwenden y/n/q für ja/nein/beenden.
  - Verwenden Sie Strg-C, um Befehle abzubrechen.

In Ihrem Fall möchten Sie den Schalter -s verwenden, um ihm ein Skript einschließlich der Anmeldeantworten zuzuführen.

Zum Beispiel:

  1. Erstellen Sie eine Skriptdatei (c:\scriptfile.txt) mit folgendem Inhalt:

    open
    servername_or_ip
    username
    password
    get
    /fullpath/thefile.txt
    c:\fullpath\thefile.txt
    quit
    
  2. Führen Sie FTP mit dem Schalter -s aus und geben Sie den Skriptdateinamen an

    C:\>ftp -s:c:\scriptfile.txt
    

Antwort4

Probieren Sie es aus curl, es ist leistungsstark und sofort einsatzbereit (Win10).

curl --user ftpusername:ftpuserpass -o outputdirname\test.txt  ftp://host/test.txt

verwandte Informationen