كيفية تعبئة وضغط ملفات متعددة تم تحميلها عن طريق الاتصال بسطر أوامر Winzip على جانب الخادم؟
لحل هذه المشكلة ، يجب أن نفهم أولاً مضيف البرمجة النصية Windows ، يشار إليه باسم WSH! فيما يلي اقتباس من تفسير Microsoft:
****************************************************** ******* ***************************
* WSH هو نوع من سلسلة تكنولوجيا Microsoft.
* في هذه البيئة ، يتم تعريف بعض الكائنات مسبقًا ، ويمكن أيضًا استخدام كائنات أخرى في COM. *
* يستخدم محرك البرنامج النصي لتفسير البرامج النصية وتنفيذها.
* يمكن للأطراف الثالثة أيضًا تطوير محركات البرمجة النصية الخاصة بها. *
****************************************************** ******* ***************************
لكي تكون محددًا ، تقوم أولاً بتجميع بعض ملفات البرنامج النصي (تأتي Microsoft مع بعض الأمثلة ، مع اللواحق .vbs أو .js).
ثم استخدم برنامجًا لشرحه وتنفيذه ، ويسمى هذا البرنامج مضيف Windows Scripting.
الاسم هو wscript.exe (أو cscript.exe على سطر الأوامر) ، يمكنك التحقق من جهازك
إذا كان لديك هذين الملفان فيه ، فستعرف ما إذا كان هناك WSH. (Win2000 تحت Winnt/System32/)
هذا يشبه إلى حد كبير ملف الدُفعات ، باستثناء أن الملف ليس سطر أوامر ، ولكنه نصي مكتوب بلغة البرنامج النصي.
دعونا نقدم بإيجاز العديد من الكائنات المدمجة التي تأتي مع WSH ، بما في ذلك:
1. كائن مقدمة من wscript.exe
يتعرض WScript لمحرك البرمجة النصية كـ WScript.
WSHARGUMSES غير علنية ؛ يدخل
2. كائن مقدمة من wshom.ocx.
كائن Wshshell التلقائي. progid هو wscript.wshshell.
(ملاحظة: هذا ما نريد استخدامه ، يمكنك تنفيذ أمر DOS)
wshnetwork كائن تلقائي. progid هو wscript.wshnetwork.
Wshshortcut ليس علنيًا ؛
Wshurlshortcut ليس علنيًا ؛
لم يتم نشر WSHCollection ؛
WSHENVIRENMENT ليس علنيًا ؛
لا يتم الوصول إلى WSHSPECIALOLSERS.
يمكنهم بشكل أساسي إكمال عملية الاستحواذ على متغيرات البيئة وتسجيل الدخول إلى الشبكة ورسم خرائط محرك الأقراص وإنشاء التقاطع السريع.
تحميل البرنامج ، المجلدات الخاصة (مثل مجلدات النظام) اكتساب المعلومات وغيرها من الوظائف.
إذا كان نظامك يدعم ADO ومكونات COM الأخرى ، فيمكنك أيضًا استخدامه.
يوضح المثال التالي فتح WordPad لعرض ملف نصي وإنشاء ملف نصي وكتابة أ
يمكنك نسخها إلى لوحة الكتابة ، ثم حفظها باستخدام .vbs كلاحقة ، ثم انقر نقرًا مزدوجًا.
'test.vbs
'************************
ما يلي هو بدء البرنامج باستخدام كائن shell
'************************
تعيين wshshell = wscript.createBject (wscript.shell)
wshshell.run (Notepad & wscript.scriptfullname)
'************************************************* *****
"استخدم com Object Scripting.FilesystemObject لتشغيل الملفات النصية
'************************************************* *****
set fs = wscript.createBject (scripting.filesystemObject)
اضبط A = fs.createTextFile (c: /testfile.txt ، true)
A.Writeline (هذا اختبار.)
A.Close
يمكن أيضًا تطبيقه بلغات برمجة الويب مثل ASP
<script language = vbscript.encode runat = server>
"ما سبق يبدأ البرنامج باستخدام كائن shell
تعيين wshshell = server.createBject (wscript.shell)
issuccess = wshshell.run (d: /winnt/system32/cmd.exe ، 1 ، true)
إذا issuccess = 0 ثم
تم تنفيذ أمر الرد. write بنجاح!
آخر
فشل الأمر Response.write في التنفيذ! أذونات غير كافية أو لا يمكن للبرنامج تشغيل في حالة DOS
إنهاء إذا
</script>
ملحوظة:
1. يجب أن يكون الخادم = الخادم
2.Set wshshell = wscript.createBject (wscript.shell)
للتغيير لتعيين wshshell = server.createBject (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 الإصدار 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:/program files/winzip ؛
يمكنك تسميته في أي مكان دون إضافة تمريرة!
الآن دعونا نفهم باختصار الاستخدام الأساسي للأمرتين في المساعدة
استخدم wzzip.exe لضغط الملفات:
التنسيق العام: wzzip [خيارات] zipfile [levelsfile] [ملفات ...]
[الخيارات] تشمل:
-العملية الافتراضية ، ملف مضغوط
-أ+ ضغط الملف وحذف الملف المراد ضغطه
-B [محرك | PATH] هو إنشاء ملفات مضغوطة مؤقتة على محرك أقراص آخر
-D حذف الملف الهدف المحدد في ملف ZIP
-e <x | n | f | s | 0> هو ضبط نسبة الضغط ، x هو الحد الأقصى و 0 هو الحد الأدنى
-F استبدل الملف الموجود في ملف ZIP
-H |-؟
-V إنشاء قائمة بالملفات المضغوطة
-@LIST قم بإنشاء ملف يحتوي على جميع الملفات المراد إلغاء ضغطها ، ثم ضغطها باسم الملف المضمّن
............. (للحصول على تفاصيل أخرى ، يرجى الرجوع إلى ملف المساعدة)
[stistfile] هو سجل معلومات قائمة بالملفات المضغوطة
[الملفات ...] هي الملفات المتعددة التي يجب ضغطها ، مفصولة بالمسافات ، أو البرية
مثال:
ضغط جميع الملفات في الدليل الحالي
wzzip test.zip *. *
ضغط جميع ملفات txt 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 to test.zip
wzzip -u test.zip @zipit.lst
قائمة قائمة الملفات المضغوطة
wzzip -v test.zip
استخدم wzunzip.exe لفك ضغط الملف:
بالتنسيق: wzunzip [خيارات] zipfile [levelsfile] [path] [ملفات ...]
[الخيارات] تشمل:
-C [M] الضغط هو عرض قائمة الملفات في شاشة DOS
-D إعادة بناء بنية الدليل في ملف الرمز البريدي
-F فقط إزالة الملفات بنفس الاسم مثل المجلد الحالي في ملف 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
'************************
"ما سبق يبدأ البرنامج باستخدام كائن shell
'************************
تعيين wshshell = wscript.createBject (wscript.shell)
wshshell.run (c: /wzzip.exe c: /test.zip c: /a.txt c: /b.txt)
'test.asp
'************************
"ما سبق يبدأ البرنامج باستخدام كائن shell
'************************
<script language = vbscript.encode runat = server>
"ما سبق يبدأ البرنامج باستخدام كائن shell
تعيين wshshell = server.createBject (wscript.shell)
issuccess = wshshell.run (c: /wzzip.exe c: /test.zip c: /a.txt c: /b.txt ، 1 ، true)
إذا issuccess = 0 ثم
تم تنفيذ أمر الرد. write بنجاح!
آخر
فشل الأمر Response.write في التنفيذ! أذونات غير كافية أو لا يمكن للبرنامج تشغيل في حالة DOS
إنهاء إذا
</script>
الأمر بسيط للغاية. يحب:
بعد تحميل ملفات متعددة باستخدام مكون التحميل ، يمكنك حزم ملفات متعددة لتزويدها بالآخرين لتنزيل ملفات zip
أو بعد تحميل ملف مضغوط ، يمكنك استخدام البرنامج لإلغاء ضغطه لتزويده بالآخرين لتنزيل ملف واحد
مريحة جدا للمستخدمين! سأكتب هذين التغييرين في المقالات المستقبلية! هناك حتما حتما في المقالة ، يرجى تصحيحني!
تم اختبار جميع الأمثلة المذكورة أعلاه على Win2000+IIS5.0!