Jump to content

VBScript

VBScript
Разработчик Майкрософт
Впервые появился 1996 год ; 28 лет назад ( 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 и стоит миллиарды долларов.

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

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

  1. ^ Что такое VBScript? , в библиотеке MSDN
  2. ^ Информация о версии WSH на MSDN.
  3. ^ Информация о версии VBScript на MSDN.
  4. ^ «Устаревшие функции клиента Windows — Что нового в Windows» . 7 ноября 2023 г.
  5. ^ Шанкар Чилла, Навин (22 мая 2024 г.). «Устаревание VBScript: сроки и следующие шаги» . Центр сообщества Microsoft . Проверено 28 мая 2024 г.
  6. ^ 86-ДОС
  7. ^ «История Visual Basic» . www.johnsmiley.com .
  8. ^ Visual Basic Scripting Edition: With Statement , на MSDN
  9. ^ Функция GetRef в MSDN.
  10. ^ Visual Basic Scripting Edition: Коллекция SubMatches , на MSDN
  11. ^ А как насчет VBScript? в статье «Введение в JScript .NET» в Scripting Clinic на MSDN (14 июля 2000 г.) Эндрю Клиника из Microsoft Corporation
  12. ^ Знакомство с компонентами сценариев Windows на MSDN.
  13. ^ «Функции VBScript» . msdn.microsoft.com . 24 октября 2011 г.
  14. ^ «Как остановить запуск элемента ActiveX в Internet Explorer» . Майкрософт . 24 августа 2007 г. Проверено 29 июня 2009 г.
  15. ^ «Рекомендации Microsoft по безопасности (960715): накопительный пакет обновлений для битов аннулирования ActiveX» . Майкрософт . 17 января 2009 г. Проверено 29 июня 2009 г.
  16. ^ Компонент сценария «VTool» - графический интерфейс и функциональные улучшения для WSH/VBS.
  17. ^ «VbsEdit — Редактор VBScript с отладчиком — Редактор VBS» . www.vbsedit.com .
  18. ^ Корпорация Сплайн Технологии. «Отладчик SplineTech VBS, Отладчик VBScript. Отладка VBS» . www.remotedebugger.com .
  19. ^ Центр сценариев , веб-сайт Microsoft, предназначенный для сценаристов системного администрирования.
  20. ^ « Профессионал быстрого тестирования – основы VBScript » . Архивировано из оригинала 17 февраля 2010 г. Проверено 5 мая 2010 г.
  21. ^ «Caché для анализа неструктурированных данных» . ИнтерСистемс . Проверено 24 сентября 2018 г.

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5ff1fb2aebe13a1c0679eff742921566__1718246160
URL1:https://arc.ask3.ru/arc/aa/5f/66/5ff1fb2aebe13a1c0679eff742921566.html
Заголовок, (Title) документа по адресу, URL1:
VBScript - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)