ฉันจะ FTP หลายไฟล์จากบรรทัดคำสั่งได้อย่างไร


25

ฉันต้องการ FTP เนื้อหาของไดเรกทอรี แต่ฉันไม่สามารถหาวิธีที่ถูกต้องในการใช้สัญลักษณ์ตัวแทน ดูเหมือนว่าจะเป็นเรื่องธรรมดาที่จะทำ; วิธีการทั้งหมดของฉันผิดหรือเปล่า?

คำสั่งคือ

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

สคริปต์ที่เรียกว่าอยู่ด้านล่าง อัปเดตต่อ billinkc

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

สคริปต์เริ่มทำงานไม่มีการคัดลอกไฟล์และเซสชัน FTP ยังคงเปิดอยู่

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>

ข้อสรุป

ฉันต้องการเพิ่มการตั้งค่าสถานะเพื่อระงับคำสั่ง PROMPT:

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

คำตอบ:


36

ก่อนออกmputคำpromptสั่งให้ใช้คำสั่งเพื่อปิดใช้งานโหมดโต้ตอบ เมื่อปิดแล้วไม่ควรขอให้คุณยืนยันแต่ละไฟล์สำหรับmput(หรือmget)


3
สำหรับผู้ที่สงสัยว่า "อะไรคือไวยากรณ์ของpromptคำสั่งนี้" คุณเพียงแค่พิมพ์ "prompt" และมันจะสลับการกระตุ้นจากจริงเป็นเท็จ
Noumenon

2
อีกวิธีหนึ่งในการปิดใช้งานการพร้อมต์แบบโต้ตอบคือใช้-iแฟล็กกับftpคำสั่งเอง (เช่นftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com) เอกสารอธิบายถึง-iตัวเลือกดังนี้: "ปิดพรอมต์แบบโต้ตอบระหว่างการถ่ายโอนไฟล์หลายครั้ง"
Jesse Webb

3

ฉันไม่เคยลองใช้ชื่อพา ธ สำหรับโฟลเดอร์ในเครื่อง แต่ฉันได้เปลี่ยนชื่อไดเรกทอรีท้องถิ่น ( lcd):

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


1

ใช้mputคำสั่งเพื่อใส่หลายไฟล์


1
ใช่นั่นคือสิ่งที่ฉันใช้
mmcglynn

หลังไฟร์วอลล์ (โดยเฉพาะ SOHO หรือหน่วยธุรกิจเกรดต่ำ) บิวด์อินftpใน Windows ไม่รองรับโหมด PASV ดังนั้นการถ่ายโอนจะหยุดและไม่เสร็จสมบูรณ์
Chris S

1

หากคุณมีสิทธิ์ผู้ดูแลระบบคุณสามารถติดตั้งncftpput มันใช้งานง่ายและยอดเยี่ยมสำหรับการอัพโหลด FTP แบบเรียกซ้ำ สวิทช์สำหรับการถ่ายโอน recursive -Rคือ

ซอฟต์แวร์นี้รวมอยู่ใน Linux ดิสทริบิวชันส่วนใหญ่ สำหรับ Windows มันเป็นติดตั้งได้กับCygwin


1

ดังที่ Tim Haegele กล่าวไว้ ncftp ทำสิ่งนี้ได้อย่างราบรื่นบน Linux หากคุณสามารถและยินดีที่จะติดตั้ง:

sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01

0

นี่คือสคริปต์ที่ฉันใช้และได้ผลกับฉัน

สำหรับ ftp1.bat (สคริปต์):

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

สำหรับ ftp.txt (สคริปต์):

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

อาจมีบางส่วนที่ไม่จำเป็น แต่ฉันก็ใช้งานได้เหมือนที่ฉันหวังไว้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.