VBScript

لغة VBScript ( إصدار البرمجة النصية لـ Microsoft Visual Basic ) هي لغة برمجة قديمة تُستخدم لكتابة البرامج النصية على نظام التشغيل Microsoft Windows باستخدام نموذج كائن المكون (COM)، وهي مبنية على لغة Visual Basic الكلاسيكية والبرمجة النصية النشطة . كانت شائعة الاستخدام بين مديري الأنظمة لإدارة أجهزة الكمبيوتر وأتمتة العديد من جوانب بيئات الحوسبة، وقد تم تثبيتها افتراضيًا في جميع إصدارات سطح المكتب من Microsoft Windows منذ Windows 98 ؛ [ 1 ] وفي Windows Server منذ حزمة خيارات Windows NT 4.0 ؛ [ 2 ] وبشكل اختياري مع Windows CE (حسب الجهاز المُثبَّت عليه).

تتضمن بيئات تشغيل VBScript كلاً من Windows Script Host (WSH) و Internet Explorer (IE) و Internet Information Services (IIS). [ 3 ] ويمكن تضمين بيئة التشغيل هذه في برامج أخرى عبر عنصر تحكم Microsoft Script ( msscript.ocx ).

في أكتوبر 2023، أعلنت مايكروسوفت عن إيقاف دعم لغة VBScript. [ 4 ] وفي مايو 2024، أُعلن عن جدول زمني متعدد المراحل لإيقاف الدعم، حيث سيتم تعطيلها افتراضيًا "حوالي عام 2027" وإزالتها نهائيًا في وقت لاحق. [ 5 ]

تاريخ

بدأت لغة VBScript كجزء من تقنيات البرمجة النصية لنظام التشغيل Windows من مايكروسوفت، والتي أُطلقت عام 1996. استهدفت هذه التقنية (التي شملت أيضًا JScript ) في البداية مطوري الويب. خلال فترة تزيد قليلاً عن عامين، تطورت VBScript من الإصدار 1.0 إلى 2.0، واكتسبت خلال تلك الفترة دعمًا من مديري أنظمة Windows الذين كانوا يبحثون عن أداة أتمتة أكثر قوة من لغة المعالجة الدفعية التي طُوّرت لأول مرة في أوائل ثمانينيات القرن الماضي. [ 6 ] في 1 أغسطس 1996، أُصدر متصفح إنترنت إكسبلورر بميزات تضمنت VBScript. [ 7 ]

في الإصدار 5.0، تم زيادة وظائف VBScript بميزات جديدة تشمل التعبيرات النمطية ؛ والفئات ؛ وعبارة With ؛ [ 8 ] ووظائف Eval و Execute و ExecuteGlobal لتقييم وتنفيذ أوامر البرامج النصية التي تم إنشاؤها أثناء تنفيذ برنامج نصي آخر؛ ونظام مؤشر الوظائف عبر GetRef، [ 9 ] ودعم Distributed COM (DCOM).

في الإصدار 5.5، أُضيفت خاصية SubMatches [ 10 ] إلى فئة التعبيرات النمطية في VBScript، مما أتاح أخيرًا لمطوري البرامج النصية إمكانية استخراج النص داخل مجموعات التعبير. وكانت هذه الخاصية متوفرة بالفعل في JScript.

مع ظهور إطار عمل .NET ، قرر فريق البرمجة النصية تضمين دعم VBScript في ASP.NET لتطوير مواقع الويب، [ 11 ] وبالتالي لن يتم تطوير أي إصدارات جديدة من محرك VBScript. وسيتولى فريق هندسة الصيانة في مايكروسوفت، المسؤول عن إصلاح الأخطاء وتحسينات الأمان، دعمه من الآن فصاعدًا . بعد إعلان مايكروسوفت عن خططها لإزالة دعم VBScript، اقترحت الانتقال إلى Windows PowerShell أو JavaScript . [ 5 ]

البيئات

واجهة المستخدم على الويب

في صفحة ويب يتم تحميلها بواسطة متصفح إنترنت إكسبلورر ، تتشابه لغة VBScript في وظيفتها مع لغة جافا سكريبت . يُمثل كود VBScript في HTML منطقًا يتفاعل مع نموذج كائن المستند (DOM) للصفحة ، مما يُتيح وظائف غير ممكنة باستخدام HTML وحده. مع ذلك، لا تدعم متصفحات الويب الأخرى ، مثل كروم وفايرفوكس وأوبرا ، لغة VBScript. لذا، عندما يكون مطلوبًا برمجة من جانب العميل وتوافقًا بين المتصفحات، يختار المطورون عادةً جافا سكريبت نظرًا لتوافقها الواسع مع مختلف المتصفحات.

الخادم النشط

تُستخدم لغة VBScript لوظائف صفحات الويب من جانب الخادم عبر صفحات الخادم النشطة (ASP). يقوم محرك ASP، asp.dll ، باستدعاء vbscript.dll لتشغيل نصوص VBScript البرمجية. يتم تضمين VBScript في صفحة ASP ضمن عبارات تبديل السياق <% و%>. يعرض المثال التالي الوقت الحالي بتنسيق 24 ساعة. 

<% Option Explicit %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title> مثال على VBScript </title></head><body><div><%'استخرج الوقت الحالي من دالة Now().علامة "=" التي تظهر بعد تبديل السياق (<%) هي اختصار' لاستدعاء طريقة Write() الخاصة بكائن الاستجابة.Dim timeValue : timeValue = Now %>التوقيت ، بصيغة الـ 24 ساعة ، هو<%= Hour ( timeValue ) %> : <%= Minute ( timeValue ) %> : <%= Second ( timeValue ) %> . </div></body></html>

مضيف البرامج النصية لنظام التشغيل ويندوز

يمكن تشغيل VBScript مباشرةً في نظام التشغيل عبر Windows Script Host (WSH). ويمكن تشغيل ملف البرنامج النصي، الذي عادةً ما يكون له امتداد ، إما عبر Wscript.exe لواجهة المستخدم الرسومية (GUI) أو Cscript.exe لواجهة سطر الأوامر (CLI)..vbs

ملف نصي لنظام التشغيل ويندوز

ملف برمجة ويندوز (WSF)، المصمم على غرار XML، يمكن أن يحتوي على عدة ملفات VBS، وبالتالي فهو مكتبة من أكواد VBScript قابلة لإعادة الاستخدام بشكل معياري. تحمل هذه الملفات امتدادًا .wsfويمكن تشغيلها باستخدام wscript.exe أو cscript.exe ، تمامًا كما هو الحال مع الملفات العادية..vbs

تطبيق HTML

تطبيق HTML (HTA) مصمم على غرار لغة HTML. يُستخدم كود HTML الموجود في الملف لإنشاء واجهة المستخدم، بينما تُستخدم لغة برمجة نصية مثل VBScript لمنطق البرنامج. تحمل هذه الملفات امتدادًا ويمكن تشغيلها باستخدام mshta.exe ..hta

مكون البرنامج النصي لنظام التشغيل ويندوز

يمكن أيضًا استخدام VBScript في مكون برمجي لنظام التشغيل Windows، وهو فئة برمجية تدعم ActiveX ويمكن استدعاؤها بواسطة تطبيقات أخرى تدعم COM. [ 12 ] هذه الملفات لها الامتداد .wsc .

الوظائف

خصائص اللغة

لغة VBScript مصممة على غرار لغة Visual Basic الكلاسيكية. [ 13 ] ومن أبرز ميزاتها:

الإجراء هو البنية الأساسية في لغة VBScript لفصل التعليمات البرمجية إلى وحدات أصغر. تُميّز VBScript بين الدالة، التي يمكنها إرجاع نتيجة في عبارة إسناد، والروتين الفرعي، الذي لا يمكنه ذلك. تكون المعاملات موضعية، ويمكن تمريرها بالقيمة أو بالمرجع.

تشمل هياكل التحكم حلقات Do التكرارية والشرطية المعتادة، وعبارات If-Then-Else، وعبارات Case، مع بعض المتغيرات الأكثر تعقيدًا، مثل ElseIf وهياكل التحكم المتداخلة.

كأداة مساعدة للذاكرة في البرمجة، وبالتأكيد من أجل سهولة القراءة، هناك عدد كبير من الثوابت، مثل Trueو Falseللقيم المنطقية، vbOKCancelو vbYesNoللرموز MsgBox، vbBlackو vbYellowلقيم الألوان، vbCRو لحرف إرجاع السطر، وغيرها الكثير.

تكون المتغيرات من النوع " Variant " بشكل افتراضي، ولكن من الممكن (وأحيانًا من الضروري) فرض نوع معين (عدد صحيح، تاريخ، إلخ) باستخدام دوال التحويل ( CInt،، CDateإلخ).

يتم توفير تفاعل المستخدم من خلال الدوال MsgBoxالتي InputBoxتُتيح تنسيق مربع حوار بسيط للرسائل والمدخلات. تعرض كلتا الدالتين رسائل توضيحية، حيث تُعيد الأولى استجابة قياسية، بينما تُعيد الثانية قيمة نصية أو رقمية يُدخلها المستخدم. لمزيد من التفاعل مع واجهة المستخدم الرسومية، يُمكن استخدام VBScript مع HTML، على سبيل المثال، في تطبيق HTML . لا تدعم هذه الخوارزمية النماذج القائمة على الأحداث كما هو الحال في Visual Basic أو Visual Basic for Applications .

لا تُميّز الأسماء بين الأحرف الكبيرة والصغيرة. ومع ذلك، يُعتبر من أفضل ممارسات كتابة لغة VBScript الاتساق واستخدام الأحرف الكبيرة باعتدال.

وظائف VBScript

عند استضافة VBScript بواسطة Windows Script Host ، فإنه يوفر العديد من الميزات الشائعة في لغات البرمجة النصية، ولكنها غير متوفرة في Visual Basic 6.0 . وتشمل هذه الميزات ما يلي:

  • وسائط سطر الأوامر المسماة وغير المسماة
  • المدخلات والمخرجات القياسية ، والتي يمكن إعادة توجيهها
  • WSH.Echo الذي يكتب إلى وحدة التحكم ولا يمكن إعادة توجيهه
  • WSH.ExitCode، والذي يمكن اختباره من ملفات الدفعات في نظام DOS، أو من خلال العملية التي استدعت ملف البرنامج النصي.
  • طابعات الشبكة
  • مشاركة الشبكة
  • المجلدات الخاصة، مثل سطح المكتب، والمفضلة، ومستنداتي، وما إلى ذلك
  • معلومات مستخدم الشبكة، مثل عضوية المجموعة
  • طرق تنفيذ النصوص المحددة أثناء التشغيل: التقييم والتنفيذ
  • طرق تنفيذ البرامج النصية على الأجهزة البعيدة
  • أدوات إدارة ويندوز (WMI)
  • وظيفة لتضمين محرك VBScript في تطبيقات أخرى، باستخدام لغة معروفة على نطاق واسع

يوفر برنامج CScript، وهو برنامج تشغيل سطر الأوامر، خيارات لما يلي:

  • الوضع التفاعلي أو وضع الدفعات
  • استدعاء وضع التصحيح من سطر الأوامر
  • الإبلاغ عن الأخطاء بما في ذلك رقم السطر

وظائف إضافية

تُنفَّذ عمليات إدارة نظام الملفات وتعديل الملفات وبث النصوص باستخدام مكتبة وقت تشغيل البرمجة النصية scrrun.dll. توفر هذه المكتبة كائنات مثل FileSystemObject وFile وTextStream، والتي تُتيح للمبرمج الوصول إلى نظام ملفات ويندوز.

تُوفّر فئة "ADODB.Stream" عمليات الإدخال والإخراج للملفات الثنائية والذاكرة، ويمكن استخدامها أيضًا لإنشاء السلاسل النصية (لتجنب دمج السلاسل النصية بشكل مفرط، والذي قد يكون مكلفًا)، ولتحويل مصفوفات البايت والسلاسل النصية. يُتاح الوصول إلى قواعد البيانات عبر كائنات بيانات ActiveX (ADO)، ويمكن التعامل مع قاعدة بيانات IIS Metabase باستخدام الدالة GetObject() مع الصلاحيات الكافية (مفيدة لإنشاء المواقع والمجلدات الظاهرية وحذفها). يمكن التعامل مع ملفات XML ومخططاتها باستخدام واجهات برمجة تطبيقات مكتبة Microsoft XML ( msxml6.dll و msxml3.dll )، والتي يمكن استخدامها أيضًا لاسترداد المحتوى من شبكة الويب العالمية عبر كائنات XMLHTTP وServerXMLHTTP (سلاسل الفئات "MSXML2.XMLHTTP.6.0" و"MSXML2.ServerXMLHTTP.6.0" على التوالي).

يمكن أيضًا إضافة وظائف جديدة عبر تقنيات ActiveX. وقد أدت المخاوف الأمنية إلى إدراج العديد من عناصر تحكم ActiveX في القائمة السوداء ضمن عملية Internet Explorer من قِبل مايكروسوفت، التي تُفعّل خاصية Killbit عبر تحديثات أمان Windows الشهرية لتعطيل البرامج الضعيفة من مايكروسوفت والجهات الخارجية. [ 14 ] [ 15 ]

يمكن للمبرمجين الاستفادة من إمكانية التوسعة عبر وحدات COM (ActiveX) لتزويد Script Host وVBScript بالوظائف المطلوبة أو المرغوبة. على سبيل المثال، يضيف مكون "VTool" عددًا من نوافذ الحوار، وإمكانية الوصول إلى الملفات الثنائية، ووظائف أخرى. [ 16 ]

أدوات التطوير

لا توفر مايكروسوفت عادةً بيئة تطوير متكاملة (IDE ) للغة VBScript، على الرغم من أن محرر النصوص البرمجية من مايكروسوفت قد تم تضمينه مع إصدارات معينة من مايكروسوفت أوفيس.

لأغراض تصحيح الأخطاء، لا يزال بالإمكان استخدام أداة تصحيح الأخطاء البرمجية من مايكروسوفت في إصدارات ويندوز الحالية، على الرغم من عدم تحديثها منذ سنوات. فهي تتيح للمستخدم وضع نقاط توقف في كود VBScript، إلا أن واجهة المستخدم فيها معقدة للغاية.

تتوفر أدوات تصحيح أخطاء VBScript من مصادر خارجية، [ 17 ] [ 18 ] والعديد من محررات النصوص توفر تمييز بناء الجملة للغة.

أثناء التنفيذ، عندما يحدث خطأ، يقوم مضيف البرنامج النصي بإصدار رسالة توضح نوع الخطأ ورقم السطر المخالف.

الاستخدامات

على الرغم من أن VBScript لغة برمجة نصية عامة الأغراض، إلا أن لها استخدامات محددة جديرة بالذكر. أولًا، كانت شائعة الاستخدام بين مديري الأنظمة في بيئة مايكروسوفت، [ 19 ] ولكن تفوقت عليها PowerShell بشكل كبير منذ ذلك الحين . ثانيًا، تُعد VBScript لغة البرمجة النصية لأداة OpenText UFT One ، وهي أداة لأتمتة الاختبارات. [ 20 ] ثالثًا، تجدر الإشارة إلى اعتماد VBScript كلغة برمجة نصية داخلية لبعض التطبيقات المدمجة، مثل واجهات المستخدم الصناعية وواجهات التفاعل بين الإنسان والآلة. كما يدعم نظام إدارة قواعد البيانات الهرمي InterSystems Caché (المشتق من لغة MUMPS ) تطبيقًا للغة VBScript، وهو Cache BASIC، لبرمجة التعليمات البرمجية المخزنة. [ 21 ]

تفتقر لغة VBScript إلى العديد من الميزات المفيدة الموجودة في لغة Visual Basic الكاملة، مثل الكتابة القوية، ومعالجة الأخطاء المتقدمة، وإمكانية تمرير عدد متغير من المعاملات إلى روتين فرعي. ومع ذلك، فإن استخدامها واسع الانتشار نسبيًا لسهولة تعلمها، ولأن مطوري البرامج المكتوبة بها لا يُلزمون بدفع رسوم ترخيص لشركة مايكروسوفت طالما تم ذكر علامة VBScript التجارية. عندما تحصل مؤسسة ما على ترخيص Visual Basic for Applications (VBA) من مايكروسوفت، كما فعلت شركات مثل Autodesk وStatSoft وGreat Plains Accounting وVisio (التي استحوذت عليها مايكروسوفت لاحقًا)، يُسمح لها بإعادة توزيع بيئة كتابة وتصحيح أكواد VBA الكاملة مع منتجها.

يتم استخدام VBScript بدلاً من VBA كلغة ماكرو لبرنامج Outlook 97.

يمكن استخدام لغة VBScript بكفاءة لأتمتة مهام المكتب اليومية، بالإضافة إلى المراقبة في بيئة ويندوز. كما يمكن استخدامها بالتكامل مع كائنات بيانات ActiveX الخاصة بـ ADODB (ADODB) لتحقيق اتصال فعال بقواعد البيانات.

يمكن أيضًا استخدام VBScript لإنشاء برامج ضارة وفيروسات، مثل دودة ILOVEYOU التي انتشرت من خلال مرفقات البريد الإلكتروني في Outlook 97 والتي كلفت مليارات الدولارات.

انظر أيضاً

مراجع

  1. معلومات إصدار WSH ، على MSDN
  2. معلومات إصدار VBScript ، على MSDN
  3. ما هي لغة VBScript؟، في مكتبة MSDN
  4. "الميزات المهملة في عميل ويندوز - ما الجديد في ويندوز" . 7 نوفمبر 2023.
  5. 1 2 شانكار تشيلا، نافين (22-05-2024). "إيقاف VBScript: الجداول الزمنية والخطوات التالية" . مركز مجتمع مايكروسوفت . تم الاسترجاع في 03-06-2025 .
  6. 86-DOS
  7. "تاريخ لغة البرمجة فيجوال بيسك " . www.johnsmiley.com
  8. إصدار البرمجة النصية فيجوال بيسك: عبارة With ، على MSDN
  9. دالة GetRef ، على MSDN
  10. إصدار البرمجة النصية فيجوال بيسك: مجموعة المباريات الفرعية ، على موقع MSDN
  11. ماذا عن VBScript؟، ضمن مقالة تقديم JScript .NET بقلم أندرو كلينيك من شركة مايكروسوفت، في Scripting Clinic على MSDN (14 يوليو 2000)
  12. مقدمة عن مكونات البرامج النصية لنظام التشغيل Windows ، على موقع MSDN
  13. "ميزات VBScript" . msdn.microsoft.com . 24 أكتوبر 2011.
  14. "كيفية إيقاف تشغيل عنصر تحكم ActiveX في متصفح إنترنت إكسبلورر" . مايكروسوفت . 24 أغسطس 2007. تم الاطلاع عليه بتاريخ 29 يونيو 2009 .
  15. "إشعار أمني من مايكروسوفت (960715): حزمة تحديثات لـ ActiveX Kill Bits" . مايكروسوفت . 17 يناير 2009. تم الاطلاع عليه بتاريخ 29 يونيو 2009 .
  16. مكون البرنامج النصي "VTool" – تحسينات على واجهة المستخدم الرسومية والوظائف لـ WSH/VBS
  17. "VbsEdit - محرر VBScript مع مصحح الأخطاء - محرر VBS" . www.vbsedit.com .
  18. شركة Spline Technologies. " مصحح أخطاء SplineTech VBS، مصحح أخطاء VBScript. تصحيح أخطاء VBS" . www.remotedebugger.com
  19. مركز البرامج النصية ، موقع مايكروسوفت الإلكتروني الذي يستهدف مبرمجي إدارة النظام
  20. " Quick Test Professional – Basics of VBScript " . مؤرشف من الأصل بتاريخ 17 فبراير 2010. تم الاطلاع عليه بتاريخ 5 مايو 2010 .
  21. "Caché لتحليل البيانات غير المهيكلة" . InterSystems . تم الاسترجاع في 24-09-2018 .