VBScript
Разработчик | Майкрософт |
---|---|
Впервые появился | 1996 год |
Стабильная версия | 5.8
|
ТЫ | Окна |
Расширения имен файлов | .vbs , .vbe , .wsf , .wsc ( .asp , .hta , .htm , .html ) |
Веб-сайт | https://learn.microsoft.com/previous-versions/t0aew7h6(v=vs.85) |
Основные реализации | |
Хост сценариев Windows , страницы активного сервера | |
Под влиянием | |
Визуальный Бейсик | |
Под влиянием | |
Windows PowerShell |
VBScript ( Microsoft Visual Basic Scripting Edition) — устаревший язык программирования для создания сценариев в Microsoft Windows с использованием модели компонентных объектов (COM), основанной на классическом Visual Basic и Active Scripting .
VBScript был популярен среди системных администраторов для управления компьютерами ; автоматизация многих аспектов вычислительной среды.
К средам выполнения VBScript относятся: Windows Script Host (WSH), Internet Explorer (IE) и службы Internet Information Services (IIS). [1] Рабочую среду можно встроить в другие программы через Microsoft Script Control ( msscript.ocx ).
VBScript устанавливается по умолчанию во всех версиях Microsoft Windows для настольных компьютеров, начиная с Windows 98 ; [2] в Windows Server, начиная с Windows NT 4.0 Option Pack ; [3] и опционально с Windows CE (в зависимости от устройства, на котором оно установлено).
В октябре 2023 года Microsoft объявила, что VBScript устарел. [4] В мае 2024 года был объявлен график многоэтапной амортизации, демонтаж которого запланирован на 2027 год или позже. [5]
История [ править ]
VBScript зародился как часть технологии Microsoft Windows Script Technologies, запущенной в 1996 году. Эта технология (которая также включала JScript ) изначально была ориентирована на веб-разработчиков. В течение чуть более двух лет VBScript продвинулся от версии 1.0 до версии 2.0 и за это время получил поддержку со стороны системных администраторов Windows, ищущих более мощный инструмент автоматизации, чем пакетный язык, впервые разработанный в начале 1980-х годов. [6] 1 августа 1996 года был выпущен Internet Explorer с функциями, включающими VBScript. [7]
В версии 5.0 функциональность VBScript была расширена за счет новых функций, включая регулярные выражения ; занятия ; оператор With ; [8] функции Eval , Execute и ExecuteGlobal для оценки и выполнения команд сценария, созданных во время выполнения другого сценария; система указателей функций через GetRef, [9] и поддержка распределенного COM (DCOM).
В версии 5.5 подсовпадения [10] были добавлены в класс регулярных выражений в VBScript, чтобы наконец позволить авторам сценариев захватывать текст внутри групп выражений. Эта возможность уже была доступна в JScript.
С появлением .NET Framework команда разработчиков сценариев решила реализовать будущую поддержку VBScript в ASP.NET для веб-разработки. [11] и поэтому новые версии движка VBScript разрабатываться не будут. Отныне его будет поддерживать группа технических специалистов Microsoft , которая отвечает за исправление ошибок и повышение безопасности. Системным администраторам Windows Microsoft предлагает перейти на Windows PowerShell , поскольку VBScript устарел и в конечном итоге будет удален из Windows.
Окружающая среда [ править ]
Клиентская сеть [ править ]
На веб-странице, загружаемой Internet Explorer , VBScript по функциям аналогичен JavaScript . Код VBScript в HTML — это логика, которая взаимодействует с объектной моделью документа (DOM) страницы, обеспечивая функциональность, невозможную только в HTML. Однако другие веб-браузеры, такие как Chrome , Firefox и Opera, не поддерживают VBScript. Поэтому, когда требуются сценарии на стороне клиента и кроссбраузерная совместимость, разработчики обычно выбирают JavaScript из-за его широкой кроссбраузерной совместимости.
Страница активного сервера [ править ]
VBScript используется для функциональности веб-страниц на стороне сервера через Active Server Pages (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 Example</title>
</head>
<body>
<div><%
' Grab current time from Now() function.
' An '=' sign occurring after a context switch (<%) is shorthand
' for a call to the Write() method of the Response object.
Dim timeValue : timeValue = Now %>
The time, in 24-hour format, is
<%=Hour(timeValue)%>:<%=Minute(timeValue)%>:<%=Second(timeValue)%>.
</div>
</body>
</html>
Хост сценариев Windows [ править ]
VBScript может работать непосредственно в операционной системе через хост сценариев Windows (WSH). Файл сценария, обычно с расширением .vbs
можно запустить либо через Wscript.exe для графического интерфейса пользователя (GUI) или Cscript.exe для интерфейса командной строки (CLI).
Файл сценария Windows [ править ]
Файл сценария Windows (WSF), стилизованный под XML, может включать в себя несколько файлов VBS и, следовательно, представляет собой библиотеку кода VBScript, которую можно повторно использовать модульным способом. Файлы имеют расширение .wsf
и может быть выполнен с использованием wscript.exe или cscript.exe , как и в случае с .vbs
файл.
HTML-приложение [ править ]
HTML -приложение (HTA) стилизовано под HTML. HTML в файле используется для создания пользовательского интерфейса, а язык сценариев, такой как VBScript, используется для логики программы. Файлы имеют расширение .hta
и может быть выполнен с использованием mshta.exe .
Компонент сценария Windows [ править ]
VBScript также можно использовать в компоненте сценариев Windows, классе сценариев с поддержкой ActiveX, который может вызываться другими приложениями с поддержкой COM. [12] Эти файлы имеют расширение .wsc .
Функциональность [ править ]
Языковые особенности [ править ]
Язык VBScript создан по образцу классического Visual Basic. [13] Примечательные особенности включают в себя:
«Процедура» — это основная конструкция VBScript для разделения кода на более мелкие модули. VBScript различает функцию, которая может возвращать результат в операторе присваивания, и подпрограмму, которая не может. Параметры являются позиционными и могут передаваться по значению или по ссылке.
Структуры управления включают обычные итеративные и условные циклы Do, операторы If-Then-Else и операторы Case, а также некоторые более сложные варианты, такие как ElseIf и вложенные структуры управления.
Для улучшения памяти при кодировании и, конечно же, для удобства чтения, существует большое количество констант, таких как True и False для логических значений, vbOKCancel и vb YesNo для кодов MsgBox, vbBlack и vbYellow для значений цвета, vbCR для символа возврата каретки, и многие другие.
По умолчанию переменные имеют тип « Вариант », но можно (а иногда и необходимо) принудительно указать определенный тип (целое число, дата и т. д.) с помощью функций преобразования (CInt, CDate и т. д.).
Взаимодействие с пользователем осуществляется через функции MsgBox
и InputBox
которые обеспечивают простой формат диалогового окна для сообщений и ввода. Обе функции отображают сообщения с подсказками: первая возвращает стандартный ответ, а вторая возвращает один введенный пользователем текст или числовое значение. Для более сложного взаимодействия графического интерфейса с элементами управления VBScript можно использовать в сочетании с HTML, например, в HTML-приложении . Формы, управляемые событиями, не поддерживаются, как в Visual Basic или Visual Basic для приложений .
Имена не чувствительны к регистру. Тем не менее, лучшим подходом к стилю VBScript считается единообразие и разумное использование капитализации.
Функциональные возможности VBScript [ править ]
При размещении на Windows Script Host 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, которая развертывает бит блокировки через ежемесячные обновления безопасности Windows для отключения уязвимого кода Microsoft и сторонних производителей. [14] [15]
Программисты могут использовать возможности расширения с помощью модулей COM (ActiveX), чтобы специально оснастить Script Host и VBScript необходимыми или желаемыми функциями. Например, компонент VTool добавляет ряд диалоговых окон, доступ к двоичным файлам и другие функции. [16]
Инструменты разработки [ править ]
Microsoft обычно не предоставляет IDE ( интегрированную среду разработки ) для VBScript, хотя редактор сценариев Microsoft входит в состав некоторых версий Microsoft Office.
Для целей отладки Microsoft Script Debugger по-прежнему можно использовать в текущих версиях Windows, даже если этот инструмент не обновлялся уже много лет. Он позволяет пользователю устанавливать точки останова в коде VBScript, но пользовательский интерфейс более чем неуклюж.
Существуют отладчики VBScript, доступные из сторонних источников. [17] [18] и многие текстовые редакторы предлагают подсветку синтаксиса языка.
При возникновении ошибки во время выполнения хост сценария выдает сообщение с указанием типа ошибки и номера ошибочной строки.
Использует [ править ]
Хотя VBScript является языком сценариев общего назначения, следует отметить несколько конкретных областей его использования. Во-первых, раньше он широко использовался системными администраторами в среде Microsoft, [19] значительно превзошел его но с тех пор PowerShell . Во-вторых, VBScript — это язык сценариев для Micro Focus Unified Functional Testing , инструмента автоматизации тестирования. [20] Третья область, на которую следует обратить внимание, — это принятие VBScript в качестве внутреннего языка сценариев для некоторых встроенных приложений, таких как промышленные операторские интерфейсы и человеко-машинные интерфейсы. Иерархическая СУБД InterSystems Caché (основанная на языке MUMPS ) также поддерживает реализацию VBScript, Cache BASIC, для программирования хранимого кода. [21]
В VBScript отсутствуют некоторые полезные функции полной версии Visual Basic, такие как строгая типизация, расширенный перехват ошибок и возможность передавать в подпрограмму переменное количество параметров. Однако его использование относительно широко распространено, поскольку его легко изучить, а также потому, что тем, кто реализует код на этом языке, не нужно платить роялти Microsoft, пока товарный знак VBScript признан. [ нужна ссылка ] Когда организация лицензирует Visual Basic для приложений (VBA) у Microsoft, как это сделали такие компании, как Autodesk, StatSoft, Great Plains Accounting и Visio (впоследствии приобретенная Microsoft), ей разрешается перераспределять полную среду написания кода и отладки VBA. со своим продуктом.
VBScript используется вместо VBA в качестве языка макросов Outlook 97.
VBScript можно эффективно использовать для автоматизации повседневных офисных задач, а также для мониторинга в среде Windows. Его также можно использовать совместно с объектами данных ADODB ActiveX (ADODB) для эффективного подключения к базе данных.
VBScript также можно использовать для создания вредоносных программ и вирусов, таких как червь ILOVEYOU , который распространяется через вложения электронной почты в Outlook 97 и стоит миллиарды долларов.
См. также [ править ]
- AppleScript
- Хост сценариев FastTrack
- HTML-компоненты
- JavaScript
- JScript.NET
- JScript
- PerlScript
- Windows PowerShell
- Файл сценария Windows
Ссылки [ править ]
- ^ Что такое VBScript? , в библиотеке MSDN
- ^ Информация о версии WSH на MSDN.
- ^ Информация о версии VBScript на MSDN.
- ^ «Устаревшие функции клиента Windows — Что нового в Windows» . 7 ноября 2023 г.
- ^ Шанкар Чилла, Навин (22 мая 2024 г.). «Устаревание VBScript: сроки и следующие шаги» . Центр сообщества Microsoft . Проверено 28 мая 2024 г.
- ^ 86-ДОС
- ^ «История Visual Basic» . www.johnsmiley.com .
- ^ Visual Basic Scripting Edition: With Statement , на MSDN
- ^ Функция GetRef в MSDN.
- ^ Visual Basic Scripting Edition: Коллекция SubMatches , на MSDN
- ^ А как насчет VBScript? в статье «Введение в JScript .NET» в Scripting Clinic на MSDN (14 июля 2000 г.) Эндрю Клиника из Microsoft Corporation
- ^ Знакомство с компонентами сценариев Windows на MSDN.
- ^ «Функции VBScript» . msdn.microsoft.com . 24 октября 2011 г.
- ^ «Как остановить запуск элемента ActiveX в Internet Explorer» . Майкрософт . 24 августа 2007 г. Проверено 29 июня 2009 г.
- ^ «Рекомендации Microsoft по безопасности (960715): накопительный пакет обновлений для битов аннулирования ActiveX» . Майкрософт . 17 января 2009 г. Проверено 29 июня 2009 г.
- ^ Компонент сценария «VTool» - графический интерфейс и функциональные улучшения для WSH/VBS.
- ^ «VbsEdit — Редактор VBScript с отладчиком — Редактор VBS» . www.vbsedit.com .
- ^ Корпорация Сплайн Технологии. «Отладчик SplineTech VBS, Отладчик VBScript. Отладка VBS» . www.remotedebugger.com .
- ^ Центр сценариев , веб-сайт Microsoft, предназначенный для сценаристов системного администрирования.
- ^ « Профессионал быстрого тестирования – основы VBScript » . Архивировано из оригинала 17 февраля 2010 г. Проверено 5 мая 2010 г.
- ^ «Caché для анализа неструктурированных данных» . ИнтерСистемс . Проверено 24 сентября 2018 г.
Внешние ссылки [ править ]
- Справочник по языку VBScript , Microsoft Docs
- VBScript мертв? , isvbscriptdead.com
- Команды VBScript , ss64.com
- Практические руководства и примеры VBScript , ss64.com
- Обзор WMI , Microsoft TechNet