Cara mengunduh file dari situs FTP dalam satu baris perintah tanpa interaksi pengguna (Windows)

13

Saya tahu ada perintah FTP yang dapat dijalankan dari baris perintah di Windows, dan itu mengunduh file dari situs FTP. Kata sandi + pengguna ditentukan dalam cmd satu-baris "itu". Opsi-opsi ini + passtrough kata sandi harus pada baris perintah itu.

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
Soundhax
sumber
Apakah Anda perlu mengunduh melalui FTP atau hanya perlu mengunduh file itu dengan program apa saja? (Rsync dapat membaca dari file dengan nama yang akan disinkronkan dan dari baris perintah. Scp juga dapat melakukannya dari baris perintah. Keduanya tidak setua teks biasa, no_true_security FTP).
Hennes

Jawaban:

13

Coba ini: File batch - Unduhan FTP tanpa pengawasan

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

untuk unduhan anonim

atau:

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

ketika otentikasi diperlukan.


Seperti @XavierStuvw tunjukkan melalui edit dan komentar, bertukar WGETke huruf kecil wgetakan bekerja di linux.

wget ftp://user:[email protected]/path/file.ext
Calvt
sumber
saya tidak melihat perintah apa pun yang memiliki opsi pengguna dan kata sandi beralih di SATU baris di sana.
Soundhax
-s beralih dalam kalimat yang saya ingat
soundhax
2
Selamat Datang di Pengguna Super! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Luke Kanada
1
@CalvT Tidak keberatan. Manfaat yang diharapkan dari komentar adalah bahwa pengguna Linux dapat mendarat di halaman ini setelah pencarian internet dan mengawasi sistem yang berlaku untuknya. Itu terjadi pada saya, sebenarnya.
XavierStuvw
1
@CalvT Judulnya memang tepat, tetapi mesin pencari sering memvisualisasikan seluruh kerangka jawaban dan mudah untuk masuk ke dalamnya. Tentu saja ini seharusnya tidak membuat pembaca tidak sadar, tetapi dalam hal ini kebetulan bahwa instruksi Linux dan Windows pada dasarnya sama. Bagus, terima kasih.
XavierStuvw
8

Saya menemukan jalan:

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
Soundhax
sumber
Ini tidak berhasil ketika saya mencobanya (saya akhirnya menggunakan klien baris perintah WinSCP sebagai gantinya ). Versi Windows manakah yang diuji?
Peter Mortensen
Bisakah Anda menjelaskan cara kerja baris ini? Tidak dapat menemukan dokumentasi apa pun. Saya mencoba membuatnya bekerja dengan psftp
stallingOne
@ installing One Pikirkan &sebagai pemecah garis ... sebenarnya adalah beberapa perintah. Pada dasarnya ia membangun sebuah skrip, baris demi baris, menggunakan echo, dan kemudian memberi tahu ftpuntuk menjalankannya. Dia memberi nama file skrip ftpjuga, yang membuatnya membingungkan.
Havenard
Pilihan nama file yang buruk. "ftp" adalah nama file dari skrip yang dibuatnya dan nama exe. Jadi resolusi jalur di ftp -n -v -s:ftpagak hinky. (Setiap penggunaan "ftp" merujuk pada hal-hal yang berbeda)
Chad Schouggins
2

Perhatikan bahwa Anda dapat meminta sintaks suatu perintah dalam DOS dengan menggunakan /? beralih. Sebagai contoh:

C: \> ftp /?

Mentransfer file ke dan dari komputer yang menjalankan layanan server FTP
(kadang-kadang disebut daemon). Ftp dapat digunakan secara interaktif.

FTP [-v] [-d] [-i] [-n] [-g] [-s: nama file] [-a] [-A] [-x: sendbuffer] [-r: recvbuf
fer] [-b: asyncbuffers] [-w: windowsize] [host]

  -v Menekan tampilan respons server jarak jauh.
  -n Menekan login otomatis saat koneksi awal.
  -i Mematikan konfirmasi interaktif selama beberapa file
                  transfer.
  -d Mengaktifkan debugging.
  -g Menonaktifkan globbing nama file (lihat perintah GLOB).
  -s: nama file Menentukan file teks yang berisi perintah FTP; itu
                  perintah akan berjalan secara otomatis setelah FTP dimulai.
  -a Gunakan antarmuka lokal saat mengikat koneksi data.
  -Sebuah login sebagai anonim.
  -x: send sockbuf Mengganti ukuran SO_SNDBUF default dari 8192.
  -r: recv sockbuf Mengganti ukuran SO_RCVBUF default dari 8192.
  -b: jumlah async Mengganti jumlah async default 3
  -w: windowsize Mengesampingkan ukuran buffer transfer default sebesar 65535.
  host Menentukan nama host atau alamat IP remote
                  tuan rumah untuk terhubung.

Catatan:
  - perintah mget dan mput mengambil y / n / q untuk ya / tidak / berhenti.
  - Gunakan Control-C untuk membatalkan perintah.

Dalam kasus Anda, Anda akan ingin menggunakan saklar -s untuk memberinya skrip, termasuk respons login.

Sebagai contoh:

  1. Buat file skrip (c: \ scriptfile.txt) dengan konten berikut:

    open
    servername_or_ip
    username
    password
    get
    /fullpath/thefile.txt
    c:\fullpath\thefile.txt
    quit
    
  2. jalankan ftp dengan tombol -s dan tentukan nama file skrip

    C:\>ftp -s:c:\scriptfile.txt
    
ya m
sumber
Pada Windows XP (ya, ya, saya tahu), ini menghasilkan "Host tidak dikenal /?"
Peter Mortensen