วิธีการแพ็คและบีบอัดไฟล์ที่อัปโหลดหลายไฟล์โดยเรียกบรรทัดคำสั่ง Winzip ทางฝั่งเซิร์ฟเวอร์?
ในการแก้ปัญหานี้ก่อนอื่นเราต้องเข้าใจโฮสต์สคริปต์ Windows ซึ่งเรียกว่า WSH! นี่คือคำพูดจากคำอธิบายของ Microsoft:
******************************************************** ******* *************************
* WSH เป็นชุดเทคโนโลยีสคริปต์ของ Microsoft
* ในสภาพแวดล้อมนี้วัตถุบางอย่างจะถูกกำหนดไว้ล่วงหน้าและวัตถุอื่น ๆ ใน COM สามารถใช้ได้ -
* เขาใช้เอ็นจิ้นสคริปต์เพื่อตีความและดำเนินการสคริปต์
* บุคคลที่สามยังสามารถพัฒนาเอ็นจิ้นสคริปต์ของตนเองได้ -
******************************************************** ******* *************************
เพื่อให้เฉพาะเจาะจงคุณรวบรวมไฟล์สคริปต์บางไฟล์ก่อน (Microsoft มาพร้อมกับตัวอย่างบางส่วนด้วย suffixes.vbs หรือ. js)
จากนั้นใช้โปรแกรมเพื่ออธิบายและดำเนินการและโปรแกรมนี้เรียกว่า Windows Scripting Host
ชื่อคือ wscript.exe (หรือ cscript.exe บนบรรทัดคำสั่ง) คุณสามารถตรวจสอบเครื่องของคุณได้
หากคุณมีไฟล์สองไฟล์นี้คุณจะรู้ว่ามี WSH หรือไม่ (Win2000 อยู่ภายใต้ winnt/system32/)
สิ่งนี้คล้ายกับไฟล์แบตช์ยกเว้นว่าไฟล์ไม่ใช่บรรทัดคำสั่ง แต่สคริปต์ที่เขียนในภาษาสคริปต์
มาแนะนำวัตถุในตัวหลายตัวที่มาพร้อมกับ WSH สั้น ๆ รวมถึง:
1. วัตถุที่จัดทำโดย wscript.exe
WScript สัมผัสกับเอ็นจิ้นสคริปต์เป็น WScript
Wsharguments ไม่สาธารณะ เข้า
2. วัตถุที่จัดทำโดย wshom.ocx
วัตถุอัตโนมัติ WSHSHELL Progid คือ wscript.wshshell
(หมายเหตุ: นี่คือสิ่งที่เราต้องการใช้คุณสามารถเรียกใช้คำสั่ง DOS ได้)
วัตถุอัตโนมัติ Wshnetwork Progid คือ WScript.wshnetwork
WSHSHORTCUT ไม่ได้เป็นสาธารณะ
Wshurlshortcut ไม่ได้เป็นสาธารณะ
WSHCOLLECTION ไม่ได้เผยแพร่
Wshenvironment ไม่ได้เป็นสาธารณะ
WshspecialFolders ไม่ได้เป็นสาธารณะ
พวกเขาส่วนใหญ่สามารถเสร็จสิ้นการได้มาของตัวแปรสภาพแวดล้อมการเข้าสู่ระบบเครือข่ายการทำแผนที่ไดรฟ์และการสร้างการสกัดกั้นอย่างรวดเร็ว
การโหลดโปรแกรมโฟลเดอร์พิเศษ (เช่นโฟลเดอร์ระบบ) การเก็บข้อมูลและฟังก์ชั่นอื่น ๆ
หากระบบของคุณรองรับ ADO และส่วนประกอบ COM อื่น ๆ คุณสามารถใช้งานได้
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าการเปิด WordPad เพื่อดูไฟล์ข้อความการสร้างไฟล์ข้อความและการเขียนไฟล์
คุณสามารถคัดลอกไปยังบอร์ดการเขียนจากนั้นบันทึกด้วย. vbs เป็นคำต่อท้ายจากนั้นดับเบิลคลิก
'test.vbs
-
'ต่อไปนี้คือการเริ่มโปรแกรมด้วยวัตถุเชลล์
-
ตั้งค่า wshshell = wscript.createObject (wscript.shell)
wshshell.run (Notepad & Wscript.scriptfullName)
-
'ใช้ com object scripting.filesystemobject เพื่อใช้งานไฟล์ข้อความ
-
SET FS = WScript.CreateObject (Scripting.FilesYstemObject)
ตั้งค่า A = fs.createtextFile (c: /testfile.txt, true)
A.WriteLine (นี่คือการทดสอบ)
a.lose
นอกจากนี้ยังสามารถนำไปใช้ในภาษาการเขียนโปรแกรมเว็บเช่น ASP
<ภาษาสคริปต์ = vbscript.encode runat = เซิร์ฟเวอร์>
'ด้านบนเริ่มโปรแกรมด้วยวัตถุเชลล์
ตั้งค่า wshshell = server.createObject (wscript.shell)
issuccess = wshshell.run (d: /winnt/system32/cmd.exe, 1, true)
ถ้า issuccess = 0 แล้ว
คำสั่ง Response.write ดำเนินการเรียบร้อยแล้ว!
อื่น
คำสั่ง Response.write ไม่สามารถดำเนินการได้! การอนุญาตไม่เพียงพอหรือโปรแกรมไม่สามารถทำงานในสถานะ DOS ได้
สิ้นสุดถ้า
</script>
บันทึก:
1. Runat = เซิร์ฟเวอร์ต้องมี
2.Set WSHSHELL = WScript.CreateObject (wscript.shell)
หากต้องการเปลี่ยนเป็น set wshshell = server.createObject (wscript.shell)
3. พารามิเตอร์ 1 หมายถึง sw_shownormal เปิดใช้งานและแสดงหน้าต่าง หากหน้าต่างถูกย่อให้เล็กสุดหรือขยายให้ใหญ่สุดจะถูกคืนค่าให้เป็นขนาดและตำแหน่งเดิม
4.TRUE แสดงถึงข้อผิดพลาดที่ส่งคืนการดำเนินการเท็จหรือระบุว่าสคริปต์ยังคงดำเนินการต่อไปโดยไม่ต้องรอให้กระบวนการสิ้นสุด
5. การเรียกวัตถุในตัวของ WSH สามารถเรียกได้เช่นฟังก์ชั่นการโทรและขั้นตอน
ตัวอย่างเช่นโทร wshshell.run (d: /winnt/system32/cmd.exe, 1, true)
หากคุณสนใจ WSH และต้องการทราบข้อมูลเพิ่มเติมโปรดตรวจสอบ
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsconwshbasics.asp
http://www.dev-club.com/club/bbs/showessence.asp?id=11136
ตอนนี้กลับมาที่จุดและดูวิธีการบีบอัดและคลายไฟล์!
ทุกคนรู้ว่า Winzip นั้นง่ายต่อการบีบอัดและบีบอัดไฟล์ แต่จะเรียกพวกเขาผ่านโปรแกรมและบรรทัดคำสั่งได้อย่างไร?
แน่นอนว่าผู้เขียน Winzip ได้พัฒนาขึ้น
สายคำสั่ง winzip รองรับ add-on เวอร์ชัน 1.0
ทุกคนสามารถไปที่ http://www.winzip.com/wzcline.htm เพื่อดาวน์โหลด wzcline.exe!
หลักฐานคือเครื่องจะต้องติดตั้ง winzip8.0 หรือสูงกว่า
http://www.winzip.com/download.htm ดาวน์โหลด!
หลังจากดาวน์โหลดเพียงแค่ติดตั้ง!
ไฟล์ช่วยเหลือบรรทัดคำสั่ง winzip และโปรแกรม wzzip.exe, wzunzip.exe จะถูกสร้างขึ้นในไดเรกทอรี winzip
คุณสามารถเริ่มเรียกใช้สาย:
ตัวอย่างเช่น: c:/โปรแกรมโปรแกรม/winzip/wzzip myfile.zip
นอกจากนี้คุณยังสามารถคัดลอกไฟล์สองไฟล์ที่นี่ไปยังไดเรกทอรีใด ๆ และเรียกใช้โดยตรงภายใต้หน้าต่าง DOS
ตัวอย่างเช่น: wzzip.exe myfile.zip
คุณสามารถเพิ่ม set path = c:/windows; c:/ไฟล์โปรแกรม/winzip;
คุณสามารถเรียกมันได้ทุกที่โดยไม่ต้องเพิ่มผ่าน!
ตอนนี้ให้เข้าใจการใช้งานขั้นพื้นฐานของคำสั่งทั้งสองในความช่วยเหลือสั้น ๆ
ใช้ wzzip.exe เพื่อบีบอัดไฟล์:
รูปแบบทั่วไป: wzzip [ตัวเลือก] zipfile [@listfile] [ไฟล์ ... ]
[ตัวเลือก] รวม:
-การดำเนินการเริ่มต้นไฟล์บีบอัด
-a+ บีบอัดไฟล์และลบไฟล์ที่จะบีบอัด
-b [ไดรฟ์ | พา ธ ] คือการสร้างไฟล์บีบอัดชั่วคราวบนไดรฟ์อื่น
-d ลบไฟล์เป้าหมายที่ระบุในไฟล์ zip
-e <x | n | f | s | 0> คือการตั้งค่าอัตราส่วนการบีบอัด x คือสูงสุดและ 0 คือขั้นต่ำ
-f แทนที่ไฟล์ที่มีอยู่ในไฟล์ zip
-h |-?
-v สร้างรายการไฟล์บีบอัด
-@list สร้างไฟล์ที่มีไฟล์ทั้งหมดที่จะคลายการบีบอัดแล้วบีบอัดมันด้วยชื่อไฟล์ที่รวมอยู่
............. (สำหรับรายละเอียดอื่น ๆ โปรดดูไฟล์ช่วยเหลือ)
[@listfile] เป็นบันทึกข้อมูลรายการของไฟล์ที่บีบอัด
[ไฟล์ ... ] เป็นหลายไฟล์ที่จะถูกบีบอัดคั่นด้วยช่องว่างหรือไวลด์การ์ด
ตัวอย่าง:
บีบอัดไฟล์ทั้งหมดในไดเรกทอรีปัจจุบัน
wzzip test.zip *. *
บีบอัดไฟล์ทั้งหมดของ TYPE TXT
wzzip test.zip *.txt
บีบอัดสองไฟล์
wzzip test.zip abc.txt def.txt
บีบอัดไฟล์ทั้งหมดของ type txt ยกเว้น abc.txt
wzzip -xabc.txt test.zip *.txt
บีบอัดไฟล์และไดเรกทอรีย่อยทั้งหมดของ type txt ภายใต้ d:/docs
wzzip -rp test.zip d:/docs/*. txt
อัปเดตไฟล์ใน zipit.1st เพื่อ test.zip
wzzip -u test.zip @zipit.lst
รายการรายการไฟล์บีบอัด
wzzip -v test.zip
ใช้ wzunzip.exe เพื่อคลายซิปไฟล์:
โดยรูปแบบ: wzunzip [ตัวเลือก] ZipFile [@listfile] [PATH] [ไฟล์ ... ]
[ตัวเลือก] รวม:
-c [m] การบีบอัดคือการแสดงรายการไฟล์ในหน้าจอ DOS
-d สร้างโครงสร้างไดเรกทอรีใหม่ในไฟล์ zip
-f decompress ไฟล์ที่มีชื่อเดียวกับโฟลเดอร์ปัจจุบันในไฟล์ zip
-jhrs เพิกเฉยต่อคุณสมบัติที่ซ่อนเร้นอ่านอย่างเดียวและระบบของไฟล์ในไฟล์ zip
-jhrs เท่านั้นที่คลายไฟล์ที่มีคุณสมบัติที่ซ่อนอยู่อ่านอย่างเดียวและระบบ
-n เฉพาะการคลายไฟล์ใหม่ให้แทนที่หากไฟล์ที่จะคลายการบีบอัดนั้นใหม่กว่าไฟล์ที่มีอยู่
-ไม่จำเป็นต้องใช้ใช่เพื่อตรวจสอบว่าจะแทนที่ไฟล์
-v สร้างรายการไฟล์บีบอัด
-@list สร้างไฟล์ที่มีไฟล์ทั้งหมดที่จะคลายการบีบอัดแล้วคลายข้อมูลด้วยชื่อไฟล์ที่รวมไว้
............. (สำหรับรายละเอียดอื่น ๆ โปรดดูไฟล์ช่วยเหลือ)
ตัวอย่างเช่น:
สร้างไฟล์ทั้งหมดไปยังไดเรกทอรีปัจจุบัน
wzunzip test.zip
สร้าง abc.txt จาก test.zip ไปยังไดเรกทอรีปัจจุบัน
wzunzip test.zip abc.txt
สร้างโครงสร้างไดเรกทอรีและไฟล์ใน test.zip ไปยังไดเรกทอรีปัจจุบัน
wzunzip -d test.zip
สร้างโครงสร้างไดเรกทอรีและไฟล์ใน test.zip เป็น c:/docs
wzunzip -d test.zip c:/docs สร้างไฟล์ที่มีชื่อไฟล์ใน files.ist จาก test.zip
wzunzip test.zip @files.lst
แสดงเนื้อหาของรายการไฟล์ของ test.zip
wzunzip -v test.zip
แสดงเนื้อหาของประเภทไฟล์ทั้งหมด txt ในไฟล์บีบอัด
wzunzip -v test.zip *.txt
ด้วยการเตรียมการข้างต้นมันจะเป็นเรื่องง่ายสำหรับเราที่จะเขียน VBS เพื่อทำการบีบอัดไฟล์และการบีบอัด:
'test.vbs
-
'ด้านบนเริ่มโปรแกรมด้วยวัตถุเชลล์
-
ตั้งค่า wshshell = wscript.createObject (wscript.shell)
wshshell.run (C: /wzzip.exe c: /test.zip c: /a.txt c: /b.txt)
'test.asp
-
'ด้านบนเริ่มโปรแกรมด้วยวัตถุเชลล์
-
<ภาษาสคริปต์ = vbscript.encode runat = เซิร์ฟเวอร์>
'ด้านบนเริ่มโปรแกรมด้วยวัตถุเชลล์
ตั้งค่า wshshell = server.createObject (wscript.shell)
issuccess = wshshell.run (c: /wzzip.exe c: /test.zip c: /a.txt c: /b.txt, 1, true)
ถ้า issuccess = 0 แล้ว
คำสั่ง Response.write ดำเนินการเรียบร้อยแล้ว!
อื่น
คำสั่ง Response.write ไม่สามารถดำเนินการได้! การอนุญาตไม่เพียงพอหรือโปรแกรมไม่สามารถทำงานในสถานะ DOS ได้
สิ้นสุดถ้า
</script>
มันง่ายมาก ชอบ:
หลังจากอัปโหลดหลายไฟล์ด้วยส่วนประกอบอัปโหลดคุณสามารถจัดแพ็คเกจหลายไฟล์เพื่อให้ไฟล์อื่น ๆ สำหรับดาวน์โหลดไฟล์ zip
หรือหลังจากอัปโหลดไฟล์ zip คุณสามารถใช้โปรแกรมเพื่อคลายการบีบอัดเพื่อให้ผู้อื่นสำหรับการดาวน์โหลดไฟล์เดียว
สะดวกมากสำหรับผู้ใช้! ฉันจะเขียนการเปลี่ยนแปลงทั้งสองนี้ในบทความในอนาคต! มีการละเว้นอย่างหลีกเลี่ยงไม่ได้ในบทความโปรดแก้ไขฉัน!
ตัวอย่างทั้งหมดข้างต้นได้รับการทดสอบใน Win2000+IIS5.0!