Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

VBScript ( « Microsoft Visual Basic Scripting Edition» ) - это язык активных сценариев, разработанный Microsoft и созданный по образцу Visual Basic . Он позволяет системным администраторам Microsoft Windows создавать мощные инструменты для управления компьютерами с обработкой ошибок , подпрограммами и другими сложными конструкциями программирования. Это может дать пользователю полный контроль над многими аспектами своей вычислительной среды.

VBScript использует объектную модель компонентов для доступа к элементам среды, в которой он выполняется; например, FileSystemObject (FSO) используется для создания, чтения, обновления и удаления файлов . VBScript был установлен по умолчанию во всех выпусках Microsoft Windows для настольных ПК, начиная с Windows 98 ; [1] в Windows Server, начиная с Windows NT 4.0 Option Pack ; [2] и опционально с Windows CE (в зависимости от устройства, на котором он установлен).

Сценарий VBScript должен выполняться в среде хоста , некоторые из которых входят в состав Microsoft Windows, в том числе: Windows Script Host (WSH), Internet Explorer (IE) и Internet Information Services (IIS). [3] Кроме того, среду размещения VBScript можно встраивать в другие программы с помощью таких технологий, как Microsoft Script Control ( msscript.ocx ).

История [ править ]

VBScript возник как часть Microsoft Windows Script Technologies, запущенной в 1996 году. Эта технология (которая также включала JScript ) изначально была предназначена для веб-разработчиков. За период чуть более двух лет VBScript продвинулся с версии 1.0 до 2.0, и за это время он получил поддержку со стороны системных администраторов Windows, ищущих инструмент автоматизации, более мощный, чем пакетный язык, впервые разработанный в начале 1980-х годов. [4] 1 августа 1996 г. был выпущен Internet Explorer с функциями, включая VBScript. [5]

В версии 5.0 функциональность VBScript была расширена новыми функциями, включая регулярные выражения ; классы ; С утверждением; [6] функции Eval , Execute и ExecuteGlobal для оценки и выполнения команд сценария, созданных во время выполнения другого сценария; система указателей на функции через GetRef, [7] и поддержку Distributed COM (DCOM).

В версии 5.5 SubMatches [8] были добавлены в класс регулярных выражений в VBScript, чтобы, наконец, позволить авторам сценариев захватывать текст в группах выражения. Эта возможность уже была доступна в JScript.

С появлением .NET Framework команда разработчиков сценариев приняла решение реализовать в будущем поддержку VBScript в ASP.NET для веб-разработки [9], и поэтому новые версии механизма VBScript разрабатываться не будут. Отныне его будет поддерживать группа инженеров Microsoft , отвечающая за исправление ошибок и повышение безопасности. Системным администраторам Windows Microsoft предлагает перейти на Windows PowerShell . Однако механизм сценариев будет по-прежнему поставляться с будущими выпусками Microsoft Windows и IIS. [ необходима цитата ]

Среды [ править ]

При использовании для клиентской веб-разработки в Microsoft Internet Explorer VBScript по своим функциям аналогичен JavaScript . Он используется для написания исполняемых функций, которые встроены в HTML-страницы или включены из них и взаимодействуют с объектной моделью документа (DOM) страницы, чтобы выполнять задачи, которые невозможно выполнить только в HTML. Однако другие веб-браузеры, такие как Firefox и Opera, а в последнее время и Chrome , не имеют встроенной поддержки VBScript. Это означает, что там, где требуются сценарии на стороне клиента и кроссбраузерная совместимость, разработчики обычно предпочитают JavaScript большинству других языков программирования, например VBScript.

VBScript также используется для обработки веб-страниц на стороне сервера, в первую очередь с Microsoft Active Server Pages (ASP). Подсистема ASP и библиотека типов asp.dll вызывает vbscript.dll для запуска сценариев VBScript. VBScript, встроенный в страницу ASP, содержится в переключателях контекста <% и%>. В следующем примере страницы ASP с VBScript текущее время отображается в 24-часовом формате, но оно также используется в качестве сценария по умолчанию для сообщений об ошибках в операционных системах Windows.

 <%  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 () объекта Response. Dim  timeValue  =  Сейчас  %>	Время в 24-часовом формате  <% = Hour ( timeValue ) %> : <% = Minute ( timeValue ) %> : <% = Second ( timeValue ) %> . </div> </body> </html>

VBScript также можно использовать для создания приложений, которые запускаются непосредственно на рабочей станции под управлением Microsoft Windows . Простейшим примером является сценарий, использующий среду Windows Script Host (WSH). Такой сценарий обычно находится в отдельном файле с расширением файла .vbs . Сценарий можно вызвать двумя способами: Wscript.exe используется для отображения вывода и приема ввода через графический интерфейс, например диалоговые окна и поля ввода. Cscript.exe используется в среде командной строки .

VBScript может быть включен в два других типа файлов сценариев: файлы сценариев Windows и приложения HTML .

Файл сценария Windows (WSF) оформлен в стиле XML. Файл WSF может включать несколько файлов VBS. В результате файлы WSF предоставляют средства для повторного использования кода: библиотека классов или функций может храниться в одном или нескольких .vbsфайлах, которые могут быть включены в .wsfфайлы, поэтому функциональные возможности могут быть повторно использованы модульным способом. Файлы имеют расширение .wsfи могут быть выполнены с использованием wscript.exe или cscript.exe , так же , как файл может..vbs

HTML-приложение (HTA) оформлено в стиле HTML. HTML в файле используется для создания пользовательского интерфейса, а язык сценариев, такой как VBScript, используется для логики программы. Файлы имеют расширение .htaи могут быть выполнены с помощью mshta.exe .

VBScript (и JScript) также можно использовать в компоненте сценария Windows, классе сценария с поддержкой ActiveX, который может быть вызван другими приложениями с поддержкой COM . [10] Эти файлы имеют расширение .wsc .

VBScript прост в создании и может быть закодирован с помощью простого в использовании текстового редактора, такого как Блокнот. Простой сценарий VBScript, сохраненный .vbsрасширением, можно запустить в системе Windows, дважды щелкнув его.

Функциональность [ править ]

Особенности языка [ править ]

Язык VBScript смоделирован на основе Visual Basic, поэтому его можно рассматривать с использованием аналогичных категорий: процедуры, управляющие структуры, константы, переменные, взаимодействие с пользователем, обработка массивов, функции даты / времени, обработка ошибок, математические функции, объекты, регулярные выражения, манипуляции со строками и так далее. [11]

Ниже приведены некоторые ключевые моменты введения Microsoft в язык VBScript.

«Процедура» - это основная конструкция в VBScript для разделения кода на более мелкие модули. VBScript различает функцию, которая может возвращать результат в операторе присваивания, и подпрограмму, которая не может. Параметры являются позиционными и могут передаваться по значению или по ссылке.

Управляющие структуры включают в себя обычные итерационные и условные циклы Do Loops, 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 для приложений.

Имена не чувствительны к регистру. Тем не менее, лучшей практикой стиля VBScript считается постоянство и разумное использование заглавных букв.

Функции VBScript [ править ]

При размещении на хосте сценариев Windows VBScript предоставляет множество функций, которые являются общими для языков сценариев, но недоступны в Visual Basic 6.0 . Эти функции включают прямой или легкий доступ к:

  • Именованные и безымянные аргументы командной строки,
  • Stdin и stdout , которые можно перенаправить,
  • WSH.Echo, который пишет в консоль и не может быть перенаправлен,
  • WSH.ExitCode, который можно проверить из командных файлов DOS или процессом, вызвавшим файл сценария,
  • Сетевые принтеры,
  • Сетевые ресурсы,
  • Специальные папки, например Рабочий стол, Избранное, Мои документы и т. Д.,
  • Информация о сетевом пользователе, например членство в группах,
  • Методы выполнения текста, определенного во время выполнения: Eval и Execute,
  • Способы выполнения скриптов на удаленных машинах,
  • Инструментарий управления Windows (WMI)
  • Функциональность для встраивания движка VBScript в другие приложения с использованием широко известного языка.

CScript, средство запуска командной строки, предоставляет параметры для:

  • Интерактивный или пакетный режим,
  • Вызов режима отладки из командной строки,
  • Отчет об ошибке, включая номер строки.

Дополнительная функциональность [ править ]

Управление файловой системой, модификация файлов и потоковая передача текста реализованы с помощью библиотеки времени выполнения сценариев scrrun.dll. Это предоставляет такие объекты, как FileSystemObject, File и TextStream, которые открывают программисту доступ к файловой системе Windows.

Двоичный файл и ввод-вывод памяти обеспечиваются классом «ADODB.Stream», который также может использоваться для построителей строк (чтобы избежать чрезмерной конкатенации строк, которая может быть дорогостоящей), а также для взаимного преобразования байтовых массивов и строк. Доступ к базе данных возможен через объекты данных ActiveX (ADO), а метабазой IIS можно управлять с помощью функции GetObject () с достаточными разрешениями (полезно для создания и уничтожения сайтов и виртуальных каталогов). XML-файлами и схемами можно управлять с помощью интерфейсов программирования приложений библиотеки Microsoft XML ( msxml6.dll , msxml3.dll), который также можно использовать для извлечения содержимого из Всемирной паутины через объекты XMLHTTP и ServerXMLHTTP (строки классов «MSXML2.XMLHTTP.6.0» и «MSXML2.ServerXMLHTTP.6.0» соответственно).

Функциональность также может быть добавлена ​​с помощью технологий ActiveX. Проблемы безопасности привели к тому, что многие элементы управления ActiveX были занесены в черный список процесса Internet Explorer Microsoft, которая развертывает killbit через ежемесячные обновления безопасности Windows для отключения уязвимого кода Microsoft и сторонних производителей. [12] [13]

Программисты могут использовать расширяемость с помощью модулей COM (ActiveX), чтобы специально оснастить Script Host и VBScript необходимыми или желаемыми функциями. Компонент VTool, например, добавляет ряд диалоговых окон, доступ к двоичным файлам и другие функции. [14]

Инструменты разработки [ править ]

Корпорация Майкрософт обычно не предоставляет IDE ( интегрированную среду разработки ) для VBScript, хотя редактор сценариев Microsoft входит в состав некоторых версий Microsoft Office.

Для целей отладки Microsoft Script Debugger все еще можно использовать в текущих версиях Windows, даже если инструмент не обновлялся годами. Он позволяет пользователю устанавливать точки останова в коде VBScript, но пользовательский интерфейс более чем неуклюжий.

Существуют отладчики VBScript, доступные из сторонних источников [15] [16], и многие текстовые редакторы предлагают подсветку синтаксиса для языка.

Во время выполнения, когда возникает ошибка, хост сценария выдает сообщение, в котором указывается тип ошибки и номер ошибочной строки.

Использует [ редактировать ]

Хотя VBScript является языком сценариев общего назначения, следует отметить несколько конкретных областей его использования. Во-первых, он широко используется системными администраторами в среде Microsoft. [17] Эта ситуация может измениться с продвижением и более широким использованием Windows PowerShell . Во-вторых, VBScript - это язык сценариев для Quick Test Professional , инструмента автоматизации тестирования. [18] Третья область, на которую следует обратить внимание, - это принятие VBScript в качестве внутреннего языка сценариев для некоторых встроенных приложений, таких как промышленные операторские интерфейсы и человеко-машинные интерфейсы. Иерархическая СУБД InterSystems Caché (корни которой лежат в языке MUMPS) также поддерживает реализацию VBScript, Cache BASIC, для программирования хранимого кода. [19]

VBScript опускает несколько полезных функций полной версии Visual Basic, таких как строгая типизация, расширенный перехват ошибок и возможность передавать переменное количество параметров в подпрограмму. Однако его использование относительно широко распространено, потому что его легко освоить и потому, что те, кто реализует код на этом языке, не должны платить Microsoft роялти, если торговая марка VBScript признана. [ необходима цитата ] Когда организация лицензирует Visual Basic для приложений (VBA) от Microsoft, как это сделали такие компании, как Autodesk, StatSoft, Great Plains Accounting и Visio (впоследствии приобретенная Microsoft), ей разрешается распространять полный код VBA - среда написания и отладки со своим продуктом.

VBScript используется вместо VBA в качестве макроязыка Outlook 97.

VBScript можно эффективно использовать для автоматизации повседневных офисных задач, а также для мониторинга в среде Windows. Это инструмент первого выбора для администраторов серверов, пользователей MS Office и других технических специалистов. [ необходима цитата ] Его также можно использовать в сотрудничестве с ADODB ActiveX Data Objects (ADODB) для эффективного подключения к базе данных.

VBScript также может использоваться для создания вредоносных программ и вирусов, таких как червь ILOVEYOU, который распространяется через вложения электронной почты в Outlook 97 и стоит миллиарды долларов. Это также может быть основной причиной того, что некоторые браузеры, такие как Firefox , Opera и Chrome , не поддерживают его.

См. Также [ править ]

  • AppleScript
  • Хост сценариев FastTrack
  • Компоненты HTML
  • JavaScript
  • JScript .NET
  • JScript
  • PerlScript
  • Windows PowerShell
  • Файл сценария Windows

Ссылки [ править ]

  1. ^ Информация о версии WSH , в MSDN
  2. ^ Информация о версии VBScript , в MSDN
  3. ^ Что такое VBScript? , в библиотеке MSDN
  4. ^ 86-ДОС
  5. ^ «История Visual Basic» . www.johnsmiley.com .
  6. ^ Visual Basic Scripting Edition: With Statement , в MSDN
  7. ^ Функция GetRef , в MSDN
  8. ^ Visual Basic Scripting Edition: SubMatches Collection , в MSDN
  9. ^ А как насчет VBScript? в статье « Введение в JScript .NET » Эндрю Клиника из Microsoft Corporation в Scripting Clinic на MSDN (14 июля 2000 г.)
  10. ^ Введение в компоненты сценария Windows на MSDN
  11. ^ «Возможности VBScript» . msdn.microsoft.com .
  12. ^ «Как остановить запуск элемента ActiveX в Internet Explorer» . Microsoft . 2007-08-24 . Проверено 29 июня 2009 .
  13. ^ «Microsoft Security Advisory (960715): Накопительный пакет обновления для битов блокировки ActiveX» . Microsoft . 2009-01-17 . Проверено 29 июня 2009 .
  14. ^ Компонент сценария "VTool" - графический интерфейс и функциональные улучшения для WSH / VBS
  15. ^ «VbsEdit - редактор VBScript с отладчиком - редактор VBS» . www.vbsedit.com .
  16. ^ Corp., Spline Technologies. «Отладчик SplineTech VBS, Отладчик VBScript. Отладка VBS» . www.remotedebugger.com .
  17. ^ Центр сценариев , сценарии системного администрирования, ориентированные на веб-сайт Microsoft
  18. ^ « Quick Test Professional - Основы VBScript » .
  19. ^ «Caché для анализа неструктурированных данных» . InterSystems . Проверено 24 сентября 2018 .

Внешние ссылки [ править ]

  • VBScript мертв?
  • VBScript в сети разработчиков Microsoft
  • Документация по Windows Script 5.6
  • VBScript @ codewiki
  • VBScript @ stealthbot
  • Обзор WMI , Microsoft TechNet