VBS (Visual Basic Scripting) - язык написания сценариев высокого уровня, по синтаксису похожий на VBA, применяемый для автоматизации администрирования Windows, обработки данных и т.д. Если Вы уже знаете Visual Basic или Visual Basic для приложений (VBA), VBScript будет очень знаком. Основные понятия VBScript являются общими для большинства языков программирования.
Объявление переменных и массивов
В VBS есть глобальные и локальные переменные, доступные только в конкретной области.
Dim Variable1 ' объявление глобальной переменной Public Variable2 ' объявление глобальной переменной Private Variable3 ' объявление локальной переменной
Использование Public и Private по большей части имеют смысл при использовании классов в VBS, которые будут рассмотрены в следующей статье. В языке VBS так же можно объявить константы:
Const Const1 = Value1
Переменную так же можно вообще не объявлять, а сразу присваивать ей значение, однако, так делать не рекомендуется, т.к. в случае опечатки в названии переменной, можно получить не те результаты, что ожидались. Чтобы компилятор требовал явного объявления всех переменных, нужно использовать оператор Option Explicit
Тип переменной задается при присвоении ей значения, при этом тип может меняться в процессе выполнения программы.
Массивы объявляются с помощью скобок.
Dim Arr1(10) ' Объявление массива с фиксированным размером (11 элементов) Dim Arr2() ' Объявление динамического массива ReDim Preserve Arr2(100) ' Изменение размера динамического массива
Как и с переменными, тип массива задается при присвоении значения, причем, у разных элементов массива могут быть разные типы.
Очистить массив от данных можно так:
Erase имя_массива
Условия и ветвления
Условия в VBS осуществляется с помощью If Then Else. Пример:
Dim s If DatePart("w", Now) = vbMonday Then s = "Сегодня понедельник" Else s = "Сегодня не понедельник" End If MsgBox s
Оператор Select Case поможет при большом количестве сравнений. Пример:
Dim x,s x = DatePart("w", Now) Select Case x Case vbMonday s = "Понедельник" Case vbTuesday s = "Вторник" Case vbWednesday s = "Среда" Case vbThursday s = "Четверг" Case vbFriday s = "Пятница" Case vbSaturday s = "Суббота" Case Else s = "Воскресенье" End select MsgBox s
Циклы
В VBS используется два основных вида циклов.
Синтаксис цикла For ... Next
For переменная=начало To конец [Step шаг] тело цикла [Exit For] тело цикла Next
Операторы в квадратных скобках не обязательны. Step - задает шаг изменения переменной цикла, на сколько она увеличивается или уменьшается с каждой итерацией (повтором) цикла. Exit For - позволяет прервать цикл "досрочно", т.е. выйти из цикла, когда необходимо и передать управление оператору, следующему за Next.
Пример цикла For ... Next
For i = 1 To 10 summ = summ + i Next
Еще один вариант цикла For Each ... Next. Он позволяет перебирать элементы какого-либо списка (массива), в случае, если его размеры не известны. В цикле так же можно использовать Exit For при необходимости.
Пример цикла For Each ... Next
Dim Arr(3), el, s Arr(0) = 1 Arr(1) = "строка" Arr(2) = 3 For Each el In Arr s = s & elem & vbCrLf Next MsgBox s
Цикл Do .. Loop используется когда необходимо выполнять цикл до тех пор пока условие верно или, наоброт, выйти из цикла если условие стало верно.
Синтаксис цикла с предусловием:
Do [While | Until] условие тело цикла [Exit Do] тело цикла Loop
Синтаксис цикла с постусловием:
Do тело цикла [Exit Do] тело цикла Loop [While | Until] условие
Как и с циклом For оператор Exit Do позволяет "досрочно" выйти из цикла.
Пример
i = 0 Do While i < 3 MsgBox i i=i+1 Loop
Цикл While Wend - альтернативная форма записи цикла Do Loop с предусловием. Цикл выполняется пока условие верно.
While условие тело цикла Wend
Заключение
Мы рассмотрели основные операторы языка VBS. Так же стоит упомянуть еще несколько моментов:
- Операторы можно записывать в одну строку, разделяя их двоеточием :
- Для записи комментария в начале строку нужно использовать апостроф ' или оператор REM
- Файлы VBScript записываются как обычные текстовые файлы в кодировке Windows-1251.
На этом, основы VBS можно считать рассмотренными.
Комментарии к статье:
For Each el In Arr
s = s & elem & vbCrLf
Next
вместо elem должно быть el
Добавить комментарий: