คำตอบของ Jesper แสดงให้เห็นถึงวิธีการทำเช่นนี้ในแบบที่ใกล้เคียงที่สุดกับวิธีการเขียนคำถาม
ฉันเสนอวิธีแก้ไขปัญหาอื่น: อย่าใช้ ftp FTP จะไม่เสนอการรักษาความปลอดภัยผ่านเครือข่าย มันอาจเป็นปัญหากับการออกแบบเครือข่ายบางอย่างโดยเฉพาะอย่างยิ่งถ้าใช้ NAT หรือเมื่อมีการใช้ไฟร์วอลล์ ปัญหาเหล่านี้อาจไม่มีอยู่หากการอัปโหลด FTP ด้วยตนเองทำงานได้ดี แต่อาจเริ่มปรากฏขึ้นหากมีคนทำการเปลี่ยนแปลง ตัวอย่างเช่นปัญหาอาจเกิดขึ้นหากคุณแทนที่โมเด็ม DSL ด้วยโมเด็ม DSL อื่นที่มีคุณสมบัติที่แตกต่างกัน
ทางออกที่ต้องการคือไม่ใช้ FTP สิ่งที่คุณสามารถใช้แทนอาจเป็นฐานที่ จำกัด สิ่งที่เว็บโฮสต์ให้เป็นตัวเลือก ทางเลือกหนึ่งที่ยอดเยี่ยมคือ SFTP ซึ่งใช้กับ PSFTP.EXE ของ PuTTY อาจมีความกำกวมเนื่องจากมีการเปลี่ยนแปลง FTP ที่ปลอดภัยหลายรูปแบบเช่น FTPS SCP ซึ่งใช้กับ PSCP ของ PuTTY อาจใช้งานได้ง่ายขึ้นในบางกรณีดังนั้นฉันขอแนะนำให้เริ่มด้วย
เมื่อต้องการทำสิ่งนี้ก่อนอื่นให้คว้าไฟล์จากเว็บไซต์ดาวน์โหลดของ PuTTY http://chiark.greenend.org.uk/~sgtatham/putty/download.html ให้บริการ pscp.exe และไฟล์ psftp.exe ที่คล้ายกัน the.earth.li/~sgtatham/putty/latest/x86/… (สำหรับเวอร์ชั่น 0.63 ซึ่งเป็นเวอร์ชั่นล่าสุด ณ เวลาที่เขียนนี้) อาจเป็นเรื่องง่ายที่สุดสำหรับผู้ที่ต้องการเดินผ่านกระบวนการติดตั้งง่ายโดยใช้ GUI ในขณะที่ไฟล์ putty.zip ยังมี putty.exe และ pscp.exe และ psftp.exe
ไฟล์แบตช์รุ่นแรกของคุณจะมีลักษณะดังนี้:
C: \ Program Files \ PuTTY \ PSCP.exe - ชื่อผู้ใช้ C: \ dir \ stuff \ to \ upload *. * remoteSever:
จดช่วงเวลาไว้ท้ายซึ่งระบุตำแหน่งที่จะไปไฟล์ ปรับแต่งตามต้องการ
เมื่อคุณทำงานได้ดีคุณจะต้องคัดค้านว่าผู้ใช้ต้องพิมพ์รหัสผ่าน ใช่นั่นสามารถแก้ไขได้ แต่มันก็ใช้งานได้มากกว่า แต่โดยทั่วไปแล้วเป็นตัวเลือกโดยเซิร์ฟเวอร์ที่รองรับการใช้ PSFTP หรือ PSCP คุณอาจต้องการใช้ PuTTYGen เพื่อสร้างคีย์ บันทึกคีย์ส่วนตัวในรูปแบบ OpenSSH (ไม่ใช่รูปแบบ * .PPK ที่ต้องการของ PuTTYGen) รหัสส่วนตัวนั้นจะต้องเข้าสู่เซิร์ฟเวอร์ การใช้ PuTTY อาจเป็นเครื่องมือที่ง่ายกว่าในการตรวจสอบให้แน่ใจว่ามีการติดตั้งรหัสส่วนตัวในที่ที่จำเป็น เมื่อจัดการไพรเวตคีย์แล้วไฟล์แบตช์สามารถแก้ไขได้เพื่อใช้:
C: \ Program Files \ PuTTY \ PSCP.exe - ชื่อผู้ใช้ -i C: \ mykeys \ mykey.pub C: \ dir \ stuff \ to \ upload *. * remoteSever:
ถ้า PSCP ทำงานได้ดีให้ปรับปรุงสิ่งต่าง ๆ เล็กน้อยโดยลองใช้ PSFTP.exe แทน ถ้าใช้งานได้ผลจะดีกว่าเล็กน้อยเนื่องจากผู้เขียน OpenSSH สังเกตว่า SFTP เป็นโปรโตคอลที่พัฒนาขึ้นมากกว่า SCP
ทางเลือกอื่นคือใช้โปรโตคอลอื่นนอกเหนือจาก FTP, SFTP หรือ SCP เช่น HTTP (S) HTTP (S) อาจเป็นอัตโนมัติโดยใช้ WGET กับ --post-file = ชื่อไฟล์ แต่คุณจะต้องค้นหา URL ที่เว็บโฮสต์ของคุณใช้เพื่ออนุญาตให้อัพโหลด HTTP ที่จริงแล้ว cURL นั้นดีกว่า WGET มันมีใบอนุญาตที่ผ่อนปรนมากขึ้นและฉันเชื่อว่ารหัสนั้นใหม่และเรียบง่ายขึ้นเช่นกัน
อาจมีการใช้งานอื่น ๆ เช่นกัน WinSCP สนับสนุนไคลเอนต์บรรทัดคำสั่งที่เรียกว่า winscp.com (และนอกจากนี้ยังมี winscp.exe ซึ่งมี GUI) Windows Script Host สามารถใช้ HTTP โดยใช้วัตถุที่มีอยู่แล้วภายใน Microsoft Windows ดังนั้นไม่จำเป็นต้องดาวน์โหลดไฟล์ปฏิบัติการ อีกครั้งฉันหมายถึงคำตอบของ Jesper เป็นคำตอบที่คุณอาจพบว่าใช้งานได้ค่อนข้างดีสำหรับคุณและใช้ซอฟต์แวร์ที่ติดตั้งไว้ล่วงหน้ากับ Windows ดังนั้นจึงไม่จำเป็นต้องดาวน์โหลดซอฟต์แวร์เพิ่มเติม ฉันเดิมพันว่ามีตัวเลือกอื่นอีกมากมาย ... คุณมีตัวเลือกมากมายที่คุณสามารถเลือกได้