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
Крутые файлы BAT и VBS
Тип переменной задается при присвоении ей значения, при этом тип может меняться в процессе выполнения программы.
Массивы объявляются с помощью скобок.
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 при необходимости.
интересные vbs скрипты
Пример цикла For Each . Next
Dim Arr(3), el, s Arr(0) = 1 Arr(1) = «строка» Arr(2) = 3 For Each el In Arr s = s 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
Заключение
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
VBScripts-Tutorial / docs.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve contributors at this time
90 lines (75 sloc) 4.37 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
Твоя любимая документация
VBScript (сокращение от Visual Basic Scripting Edition) — это язык сценариев, основанный на Visual Basic. Он часто используется для автоматизации задач в среде Windows, таких как скрипты входа в систему, администрирование системы и управление сетью. В этом учебном пособии мы рассмотрим основы программирования на VBScript.
Файлы VBScript обычно имеют расширение «.vbs» и могут быть созданы и отредактированы с помощью любого текстового редактора, такого как Notepad или Visual Studio Code. Для запуска файла VBScript можно использовать командную строку или двойным щелчком мыши открыть файл в Windows.
VBScript имеет простой и понятный синтаксис, схожий с другими языками программирования. Он использует ключевые слова и операторы для управления потоком выполнения программы. Например:
- Объявление переменной
Dim myVar
- Присваивание значения переменной
myVar = «Hello, world!»
- Вывод значения переменной на экран
MsgBox myVar
Переменные — это именованные области памяти, используемые для хранения значений. В VBScript переменные объявляются с помощью ключевого слова «Dim», а затем присваиваются значения. Например:
Dim myVar myVar = «Hello, world!»
Условные операторы используются для выполнения определенного кода в зависимости от значения переменной или условия. В VBScript используется оператор «If..Then..Else». Например:
If x > 10 Then MsgBox «x is greater than 10» Else MsgBox «x is less than or equal to 10» End If
Циклы используются для выполнения определенного кода несколько раз. В VBScript есть два типа циклов: «For..Next» и «Do..While». Например:
For i = 1 To 10 MsgBox i Next
- Цикл Do..While
x = 0 Do While x < 10 MsgBox x x = x + 1 Loop
Функции и процедуры:
Функции и процедуры используются для организации кода и повторного использования его частей. В VBScript функции объявляются с помощью ключевого слова «Function», а процедуры — с помощью ключевого слова «Sub». Например:
- Функция, возвращающая сумму двух чисел
Function add(a, b) add = a + b End Function
- Процедура, выводящая на экран приветствие
Sub sayHello() MsgBox «Hello!» End Sub
Обработка ошибок — это важная часть любой программы. В VBScript можно использовать оператор «On Error» для управления ошибками. Например:
`On Error Resume Next` ‘ Игнорировать ошибки и продолжить выполнение
- Код, который может вызвать ошибку
If Err.Number <> 0 Then ‘ Проверить, была ли ошибка MsgBox «An error occurred: » https://github.com/Fsoky/VBScripts-Tutorial/blob/main/docs.md» target=»_blank»]github.com[/mask_link]
Урок 1 по VBScript: Синтаксис vbs сценариев
Программирование на VBSCRIPT
Автор Coding На чтение 5 мин Просмотров 1.6к. Опубликовано 17.12.2014
В этом начальном уроке, мы изучим синтаксис vbscript языка. Синтаксис языка vbscript является таким же как и в языке Visual Basic и фактически, является подмножеством данного языка программирования. Основной упор в использовании vbscript – это возможность написания сценариев (расширение vbs) с открытым кодом для платформы Windows. Пользователю не нужно прибегать к установке дополнительного программного обеспечения, так как все сценарии выполняются под управлением сервера сценариев Windows Script Host.
И так, давайте рассмотрим базовый синтаксис vbscipt и его возможности.
- Комментарии – для комментирования строк кода можно использовать ключевое слово REM , или одинарную кавычку (‘).
- Строки кода – что бы произвести перенос одной строки на несколько, используется символ подчёркивания.
- Переменные – для объявления переменных используется ключевое слово Dim . Более детально, работу с ними я рассмотрел в статье «Урок 2 по VBScript: Переменные«
Можно прописать несколько операторов в одну строчку, для этого используется знак двоеточия (:). Сам язык нечувствителен к регистру символов.
Хорошо, давайте рассмотрим синтаксис языка vbscript на таком примере:
‘**************************************** REM Общий синтаксис vbscript REM primer_1.vbs ‘**************************************** dim a, b, c a = «строка» b = 100 c = 22.5 MsgBox a:MsgBox b:MsgBox c
‘****************************************REM Общий синтаксис vbscriptREM primer_1.vbs’****************************************dim a, b, ca = «строка»b = 100c = 22.5MsgBox a:MsgBox b:MsgBox c
Видим, что тут, мы вначале прописали комментарии, далее объявили три переменные. Как видим, язык vbscript не требует назначения типа данных (более детально, работу с типами данных я рассмотрел в статье – «Урок 3 по VBScript: Типы данных«). В конце, для вывода данных мы использовали функцию MsgBox, в данном случае она прописана в упрощенном варианте. Давайте рассмотрим ее полный синтаксис:
MsgBox(prompt[, buttons] [, title ][, helpfile, context ] ) – видим, что тут, функции передаются пять параметров, последние два мы рассматривать не будет, так как они не являются актуальными и практически не применяются.
- prompt – собственно, сообщение, которое надо вывести
- buttons – позволяет задать дополнительные кнопки, их значения указываются через константы
- title – заголовок окна
Работу с данной функцией я более детально рассмотрел в статье «Создание диалоговых окон«.
Язык vbscript предоставляют также функции для работы со строками и датой, а также, ряд математических функций.
Конечно, синтаксис vbscript позволяет пользователю создавать собственные процедуры и функции. Для определения процедуры, т. е. подпрограммы, которая не возвращает никакого значения, в VBScript используется конструкция Sub … End Sub. После ключевого слова Sub идёт имя процедуры, а в круглых скобках указывается список её параметров, например:
Sub MyProcedure(Param1, Param2)
Строки кода
End Sub
Если процедура не имеет параметров, то в скобках после имени ничего указывать не нужно:
Sub MyProcedure()
…
End Sub
Вызывать процедуру из сценария можно двумя способами. Во-первых, можно просто написать имя и указать через пробел список передаваемых параметров, например: MyProcedure 3,10. Во-вторых, можно использовать специальный оператор Call , при этом список параметров обязательно должен быть заключен в круглые скобки: Call MyProcedure(3,10) .
Для определения функции, т. е. подпрограммы, которая возвращает определенное значение, применяется конструкция Function … End Function. Как и при описании процедур, после названия функции в круглых скобках указывается список её параметров, например:
Function MyFunction(Param1, Param2) … End Function
Для того чтобы возвратить из функции какое-либо значение, нужно внутри неё присвоить это значение переменной, название которой совпадает с именем функции:
Function MyFunction(Param1, Param2)
Dim Sum
Sum = Paraml+Param2
MyFunction = Sum
End Function
Если возвращаемое функцией значение не нужно присваивать никакой переменной, то функция вызывается так же, как и процедура — пишется имя этой функции и через пробел указывается список ее аргументов: MyFunction 3,5
Если же необходимо записать значение в какую-либо переменную, то аргументы функции заключаются в круглые скобки.
Вот простой пример синтаксиса vbscript для использования собственных процедур и функций:
‘**************************************** REM Общий синтаксис vbscript REM primer_2.vbs ‘**************************************** dim a, b, c ‘ пользовательская функция Function my_fun(a, b) Dim Summ Summ = a+b my_fun = Summ End Function ‘ пользовательская процедура Sub my_sub(a, b) Dim Summ Summ = a+b MsgBox Summ End Sub MsgBox my_fun(5,10) Call my_sub(100,200)
‘****************************************REM Общий синтаксис vbscriptREM primer_2.vbs’****************************************dim a, b, c’ пользовательская функцияFunction my_fun(a, b) Dim Summ Summ = a+b my_fun = SummEnd Function’ пользовательская процедураSub my_sub(a, b) Dim Summ Summ = a+b MsgBox SummEnd SubMsgBox my_fun(5,10)Call my_sub(100,200)
Помимо процедур и функций, можно создавать собственные массивы (Урок 9 по VBScript: Массивы) и классы (Урок 8 по VBScript: Объекты и классы)
Ну что же, вдобавок, хотелось бы упомянуть две очень полезные функции:
- Hex(number ) – функция позволяет получить 16-ричное значение для числа number
- Oct(number) — функция позволяет получить 8-ричное значение для числа number
Смотрим на третий пример:
‘**************************************** REM Общий синтаксис vbscript REM primer_3.vbs ‘**************************************** dim my_var my_var = 200 MsgBox Hex(my_var):MsgBox Oct(my_var)
‘****************************************REM Общий синтаксис vbscriptREM primer_3.vbs’****************************************dim my_varmy_var = 200MsgBox Hex(my_var):MsgBox Oct(my_var)
Источник: scriptcoding.ru