VBScript
Реализация языка программирования BasicVBScript (сокращение от Visual Basic Scripting Edition) — скриптовый язык программирования, разработанный Microsoft и основанный на Visual Basic. Используется для создания скриптов в ОС семейства Windows.
Разработка VBScript началась в 1996 году в рамках технологии Microsoft Windows Script, изначально предназначенной для веб-разработчиков. Он должен был заменить устаревший язык, интерпретируемый приложением command.com
. За следующие два года язык развился достаточно, чтобы обратить на себя внимание системных администраторов, нуждающихся в более мощном инструменте автоматизации, чем языке batch-файлов. Начиная с Windows 98, VBScript входил в стандартную поставку всех экземпляров Windows.
Развитие языка и включение в него новых возможностей продолжалось до появления фреймворка .NET; на этом этапе он был встроен в ASP.NET, и выпуск новых версий языка прекратился. Последней версией стала VBScript 5.8. Поддержкой языка занимается Sustaining Engineering Team.
Использование
Скрипты VBScript выполняются в специальной среде, существующей в нескольких вариантах:
-
Windows Script Host позволяет создавать независимые приложения путем написания скриптов
.vbs
и их запуска командамиCscript.exe
(в режиме командной строки) иWscript.exe
(с графическим интерфейсом). - В Internet Explorer VBScript выполняет функции, аналогичные JavaScript, — создание исполняемых функций, встраиваемых в HTML.
- С Active Server Pages язык используется для обработки веб-страниц на стороне сервера.
-
VBScript можно встраивать в два других типа скриптовых файлов: Windows Script Files (файлы
.wsf
, обеспечивающие модульность и повторное использование кода) и HTML Applications (файлы.hta
, комбинирующие возможности HTML для описания интерфейса программы и VBScript для реализации логики). - Технология Microsoft Script Control позволяет встраивать среду выполнения VBScript в другие программы.
Особенности языка
Синтаксис VBScript является несколько упрощённой версией синтаксиса Visual Basic. В частности, не поддерживается типизация: все переменные имеют тип Variant
, хотя каждое отдельно взятое значение можно преобразовать к нужному типу использованием явных функций преобразования CStr
, CDate
и т.д. Язык определяет множество констант для улучшения читабельности кода.
VBScript обеспечивает работу с датой/временем, обработку строк, математические вычисления, обработку ошибок, регулярные выражения и другое. Дополнительные функциональные возможности можно добавить, используя технологию ActiveX. Управление файловой системой, модификация файлов, операции с бегущим текстом доступны при использовании библиотеки scrrun.dll
. Доступ к базе данных реализуется через ActiveX Data Objects (ADO), и IIS Metabase. Файлами XML и схемами можно управлять при помощи Microsoft XML Library Application Programming Interfaces (msxml6.dll
, msxml3.dll
), которые также могут использоваться для поиска информации в интернете.
Ссылки:
Примеры:
Hello, World!:
Пример для версий VBScript 5.7, VBScript 5.8Программа выводит сообщение в консоль и запускается командой cscript.exe
.
WScript.Echo("Hello, World!")
Факториал:
Пример для версий VBScript 5.7, VBScript 5.8Факториал вычисляется итеративно. Обратите внимание на то, что переполнения переменной-факториала не происходит, несмотря на то, что ее тип определяется автоматически.
f = 1
For i = 0 To 16
WScript.Echo(i & "! = " & f)
f = f * (i + 1)
Next
Числа Фибоначчи:
Пример для версий VBScript 5.7, VBScript 5.8Числа Фибоначчи вычисляются рекурсивно. Обратите внимание на то, что многие элементы, типичные для Visual Basic, здесь отсутствуют: объявление переменных и типа значения, возвращаемого функцией, явное преобразование чисел в строку для конкатенации и т.д.
Function Fibonacci(N)
If N < 2 Then
Fibonacci = N
Else
Fibonacci = Fibonacci(N - 1) + Fibonacci(N - 2)
End If
End Function
For i = 1 To 16
res = res & Fibonacci(i) & ", "
Next
WScript.Echo (res & "...")
CamelCase:
Пример для версий VBScript 5.7, VBScript 5.8В отличие от многих других реализаций Visual Basic, в VBScript нет функции StrConv
. Поэтому проще всего выполнить нужное преобразование строки посимвольно.
Text = LCase(WScript.StdIn.ReadLine)
CamelCase = ""
WasSpace = True
For i = 1 To Len(Text)
Ch = Mid(Text, i, 1)
If InStr("abcdefghijklmnopqrstuvwxyz", Ch) = 0 Then
WasSpace = True
Else
If WasSpace Then
CamelCase = CamelCase & UCase(Ch)
Else
CamelCase = CamelCase & Ch
End If
WasSpace = False
End If
Next
WScript.Echo CamelCase
Квадратное уравнение:
Пример для версий VBScript 5.7, VBScript 5.8Function GetInt()
Input = WScript.StdIn.ReadLine
If not IsNumeric(Input) Then
WScript.Echo "Coefficient is not a number."
WScript.Quit
End If
GetInt = CInt(Input)
End Function
A = GetInt()
If A = 0 Then
WScript.Echo "Not a quadratic equation."
WScript.Quit
End If
B = GetInt()
C = GetInt()
D = B * B - 4 * A * C
p1 = -B / 2.0 / A
p2 = Sqr(Abs(D)) / 2.0 / A
If D = 0 Then
WScript.Echo "x = " & p1
Else
If D > 0 Then
WScript.Echo "x1 = " & (p1 + p2)
WScript.Echo "x2 = " & (p1 - p2)
Else
WScript.Echo "x1 = (" & p1 & ", " & p2 & ")"
WScript.Echo "x2 = (" & p1 & ", " & -p2 & ")"
End If
End If
Комментарии
]]>blog comments powered by Disqus
]]>