Bagaimana cara FTP beberapa file dari baris perintah?

25

Saya ingin mengunggah konten direktori, tetapi sepertinya saya tidak bisa menemukan cara yang tepat untuk menggunakan wildcard. Sepertinya ini akan menjadi hal yang biasa dilakukan; Apakah seluruh pendekatan saya salah?

Perintahnya adalah

ftp -s:"C:\Scripts\ftp01" ftpserver.domain.com

Skrip yang dipanggil ada di bawah ini. Diperbarui per billinkc.

username
password
ascii
cd "/destinationfolder"
lcd "C:\Backup"
mput *.bak
close
quit

Script dimulai, tidak ada file yang disalin dan sesi FTP tetap terbuka.

230 User username Logged in Successfully
ftp> ascii
200 TYPE Command OK A
ftp> cd "/destinationfolder"
250 Directory successfully changed to "/destinationfolder"
ftp> lcd "C:\Backup"
Local directory now C:\Backup.
ftp> mput *.bak
mput 9829980.bak? close
mput 6406766.bak? quit
ftp>
ftp>

Kesimpulan

Saya perlu menambahkan bendera untuk menekan perintah PROMPT:

ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com
mmcglynn
sumber

Jawaban:

36

Sebelum mengeluarkan mputperintah, keluarkan promptperintah untuk menonaktifkan Mode Interaktif. Setelah itu mati, seharusnya tidak meminta Anda untuk mengkonfirmasi setiap file untuk mput(atau an mget).

Ƭᴇcʜιᴇ007
sumber
3
Bagi mereka yang bertanya-tanya "apa sintaks dari promptperintah ini ", Anda benar-benar cukup ketik "prompt" dan itu beralih meminta dari benar ke salah.
Noumenon
2
Cara lain untuk menonaktifkan bisikan interaktif adalah dengan menggunakan -iflag pada ftpperintah itu sendiri (misalnya ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com). Dokumen menggambarkan -iopsi sebagai: "Mematikan konfirmasi interaktif selama beberapa transfer file."
Jesse Webb
3

Saya belum pernah mencoba menggunakan pathname untuk folder lokal, tetapi saya telah melakukannya dengan mengubah direktori lokal ( lcd):

username
password
ascii
cd "/destinationfolder"
lcd Backup
mput *.bak
close
quit
billinkc
sumber
2

Coba masukkan baris prompt ntepat sebelum mputbaris

horatio
sumber
1

Gunakan mputperintah untuk meletakkan banyak file.

Chris S
sumber
1
Ya, itulah yang saya gunakan
mmcglynn
Di balik firewall (terutama SOHO atau unit kelas bisnis murah)? Built in ftppada Windows tidak mendukung mode PASV, jadi transfer akan hang dan tidak pernah selesai.
Chris S
1

Jika Anda memiliki hak administrator, Anda dapat menginstal ncftpput . Mudah digunakan dan bagus untuk unggahan FTP rekursif. Switch untuk transfer rekursif adalah -R.

Perangkat lunak ini termasuk dalam sebagian besar distribusi Linux. Untuk Windows dapat diinstal dengan Cygwin .

Tim Haegele
sumber
1

Seperti yang disebutkan Tim Haegele, ncftp melakukan ini dengan sangat lancar di Linux, jika Anda mampu dan mau menginstalnya:

sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01
Collin Anderson
sumber
0

Ini adalah skrip yang saya gunakan dan yang bekerja untuk saya.

Untuk ftp1.bat (skrip):

ftp -i -s:\tmp\ftp.txt

Untuk ftp.txt (skrip):

Open ip
username
password
prompt
lcd C:\YourFolder\YourFolder
binary
cd /DestinationFolder
prompt
mput *.bak
cd ..
disconnect
quit

Mungkin ada bagian-bagian yang tidak perlu tetapi saya menaruhnya ketika itu bekerja untuk saya, semoga membantu

Adrian Chacon
sumber