Visual Basic Scripting Edition

Поделись знанием:
(перенаправлено с «VBScript»)
Перейти к: навигация, поиск

Visual Basic Scripting Edition (обычно просто VBScript) — скриптовый язык программирования, интерпретируемый компонентом Windows Script Host. Он широко используется при создании скриптов в операционных системах семейства Microsoft Windows.

VBScript был создан компанией Microsoft как замена устаревшему пакетному языку, интерпретируемому приложением command.com.





Область применения

Скрипты на языке VBScript чаще всего применяются в следующих областях, использующих продукцию Microsoft:

Такой тип сценариев обычно используется для:

  • создания сложных сценариев;
  • использования объектов из других приложений и библиотек;
  • скрытия окон в ходе выполнения сценария;
  • шифрования логики сценария.

В основном VBS-сценарии применяются для обработки данных, управления системой, работы с учетными записями пользователей и компьютеров, взаимодействия с офисными приложениями, работы с базами данных и прочих сложных задач.

VBS-сценарий — это обычный текстовый файл с расширением *.vbs, который легко править в блокноте, а запускать на исполнение — двойным щелчком мыши или вызовом по имени в консоли.

Сценарии не компилируются, а интерпретируются. То есть для обработки скрипта в системе должен присутствовать интерпретатор языка VBS, и таких интерпретаторов в Windows два: оконный WScript и консольный CScript, оба интерпретатора это Windows Script Host (WSH).

Правила языка

В Visual Basic работают следующие правила:

  • длина строки не ограничена;
  • регистр символов не учитывается;
  • количество пробелов между параметрами не учитывается;
  • строку команды можно разрывать, а на месте разрыва нужно вставлять символ «_»;
  • максимальная длина имени переменной 255 символов;
  • комментарии обозначаются символом «'».
  • несколько строк можно объединять в одну, предварительно разделив их символом «:»

Переменные

По умолчанию переменные в сценариях объявляются автоматически при первом использовании в теле скрипта, если это не запрещено директивой Option Explicit. Если же в начале сценария объявить директиву Option Explicit, то все переменные нужно определять заранее с помощью следующих конструкций:

Dim ValueName1 ' переменная, доступная всем подпрограммам;
Public ValueName2 ' переменная, доступная всем подпрограммам;
Private ValueName3 ' переменная, доступная только текущей программе и её подпрограммам;

Константы объявляются в начале сценария с помощью конструкции:

Const ConstName1 = Value1 ' константа, доступная всем подпрограммам;
Public Const ConstName2 = Value2 ' константа, доступная всем подпрограммам;
Private Const ConstName3 = Value3 ' константа, доступная только текущей программе и её подпрограммам;

Тип переменной присваивается автоматически после внесения в неё первого значения. В Visual Basic существуют следующие типы данных:

  • empty — неинициализированная переменная;
  • null — пустая переменная;
  • boolean — логический тип, возможные значения: False, True или 0, 1;
  • byte — 8-битное целое число без знака, возможные значения: 0 .. 255;
  • integer — 16-битное целое число, возможные значения: −32768 .. 32767;
  • long — 32-битное целое число, возможные значения: −2147483648 .. 2147483647;
  • currency — денежный тип, возможные значения: −922337203685477,5808 до 922337203685477,5807;
  • single — число с плавающей точкой, возможные значения: −3.402823e38 .. −1.401298e-45 для отрицательных чисел и 1.401298e-45 .. 3.402823e38 для положительных чисел;
  • double — число с плавающей точкой, возможные значения: −1.79769313486232e308 .. −4.94065645841247e-324 для отрицательных чисел и 4.94065645841247e-324 .. 1.79769313486232e308 для положительных чисел;
  • date — дата, возможные значения: 01.01.1900 .. 31.01.9999;
  • string — строковая переменная, вместимость до 2 миллиардов символов;
  • object — указатель на объект;
  • error — код ошибки.

В VBS-сценариях возможно использование массивов переменных, которые позволяют хранить списки, таблицы и даже более сложные конструкции. Одномерные массивы (списки) могут быть динамическими, то есть они позволяют изменять свой размер в ходе работы сценария. Все массивы объявляются командой Dim:

Dim ArrayName(Dimension)

Объекты, их методы и свойства

VBScript, как и их родитель — язык Visual Basic, является объектно-ориентированным языком программирования, то есть основной концепцией является понятие объектов и классов

Класс — это тип, описывающий устройство объектов. Объект подразумевает под собой нечто, что обладает определённым поведением и способом представления, объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.

Все объекты, с которыми работает Windows Script Host, имеют методы и свойства. Чтобы обратиться к методу, необходимо указать объект, а через точку - метод с необходимыми параметрами.

Аналогичная ситуация со свойствами, но свойства можно как назначать, так и считывать в переменные и другие свойства, правда, следует учитывать тип данных переменных и свойств, иначе сценарий выдаст ошибку несовместимости типов данных.

Пример

Вот пример небольшой программы на языке VBScript, которая выводит диалоговое окно с сообщением (символы после знака апостроф являются комментариями):

 ' Объявление переменной:
 Dim strMessage
 ' Присваивание переменной значения:
 strMessage = "Википедия — свободная энциклопедия"
 ' Вывод окна с сообщением:
 MsgBox strMessage

По эффекту работы она аналогична прямой инструкции

MsgBox "Википедия — свободная энциклопедия"

См. также

Напишите отзыв о статье "Visual Basic Scripting Edition"

Ссылки

  • [msdn2.microsoft.com/en-us/library/t0aew7h6.aspx VBScript] (англ.) — Руководство по VBScript от Майкрософт.
  • [www.microsoft.com/technet/scriptcenter/scripts/default.mspx The Script Center Script Repository] (англ.) — Коллекция скриптов на VBScript от Майкрософт.

Отрывок, характеризующий Visual Basic Scripting Edition

– Ростов, иди сюда, выпьем с горя! – крикнул Денисов, усевшись на краю дороги перед фляжкой и закуской.
Офицеры собрались кружком, закусывая и разговаривая, около погребца Денисова.
– Вот еще одного ведут! – сказал один из офицеров, указывая на французского пленного драгуна, которого вели пешком два казака.
Один из них вел в поводу взятую у пленного рослую и красивую французскую лошадь.
– Продай лошадь! – крикнул Денисов казаку.
– Изволь, ваше благородие…
Офицеры встали и окружили казаков и пленного француза. Французский драгун был молодой малый, альзасец, говоривший по французски с немецким акцентом. Он задыхался от волнения, лицо его было красно, и, услыхав французский язык, он быстро заговорил с офицерами, обращаясь то к тому, то к другому. Он говорил, что его бы не взяли; что он не виноват в том, что его взяли, а виноват le caporal, который послал его захватить попоны, что он ему говорил, что уже русские там. И ко всякому слову он прибавлял: mais qu'on ne fasse pas de mal a mon petit cheval [Но не обижайте мою лошадку,] и ласкал свою лошадь. Видно было, что он не понимал хорошенько, где он находится. Он то извинялся, что его взяли, то, предполагая перед собою свое начальство, выказывал свою солдатскую исправность и заботливость о службе. Он донес с собой в наш арьергард во всей свежести атмосферу французского войска, которое так чуждо было для нас.
Казаки отдали лошадь за два червонца, и Ростов, теперь, получив деньги, самый богатый из офицеров, купил ее.
– Mais qu'on ne fasse pas de mal a mon petit cheval, – добродушно сказал альзасец Ростову, когда лошадь передана была гусару.
Ростов, улыбаясь, успокоил драгуна и дал ему денег.
– Алё! Алё! – сказал казак, трогая за руку пленного, чтобы он шел дальше.
– Государь! Государь! – вдруг послышалось между гусарами.
Всё побежало, заторопилось, и Ростов увидал сзади по дороге несколько подъезжающих всадников с белыми султанами на шляпах. В одну минуту все были на местах и ждали. Ростов не помнил и не чувствовал, как он добежал до своего места и сел на лошадь. Мгновенно прошло его сожаление о неучастии в деле, его будничное расположение духа в кругу приглядевшихся лиц, мгновенно исчезла всякая мысль о себе: он весь поглощен был чувством счастия, происходящего от близости государя. Он чувствовал себя одною этою близостью вознагражденным за потерю нынешнего дня. Он был счастлив, как любовник, дождавшийся ожидаемого свидания. Не смея оглядываться во фронте и не оглядываясь, он чувствовал восторженным чутьем его приближение. И он чувствовал это не по одному звуку копыт лошадей приближавшейся кавалькады, но он чувствовал это потому, что, по мере приближения, всё светлее, радостнее и значительнее и праздничнее делалось вокруг него. Всё ближе и ближе подвигалось это солнце для Ростова, распространяя вокруг себя лучи кроткого и величественного света, и вот он уже чувствует себя захваченным этими лучами, он слышит его голос – этот ласковый, спокойный, величественный и вместе с тем столь простой голос. Как и должно было быть по чувству Ростова, наступила мертвая тишина, и в этой тишине раздались звуки голоса государя.
– Les huzards de Pavlograd? [Павлоградские гусары?] – вопросительно сказал он.
– La reserve, sire! [Резерв, ваше величество!] – отвечал чей то другой голос, столь человеческий после того нечеловеческого голоса, который сказал: Les huzards de Pavlograd?
Государь поровнялся с Ростовым и остановился. Лицо Александра было еще прекраснее, чем на смотру три дня тому назад. Оно сияло такою веселостью и молодостью, такою невинною молодостью, что напоминало ребяческую четырнадцатилетнюю резвость, и вместе с тем это было всё таки лицо величественного императора. Случайно оглядывая эскадрон, глаза государя встретились с глазами Ростова и не более как на две секунды остановились на них. Понял ли государь, что делалось в душе Ростова (Ростову казалось, что он всё понял), но он посмотрел секунды две своими голубыми глазами в лицо Ростова. (Мягко и кротко лился из них свет.) Потом вдруг он приподнял брови, резким движением ударил левой ногой лошадь и галопом поехал вперед.
Молодой император не мог воздержаться от желания присутствовать при сражении и, несмотря на все представления придворных, в 12 часов, отделившись от 3 й колонны, при которой он следовал, поскакал к авангарду. Еще не доезжая до гусар, несколько адъютантов встретили его с известием о счастливом исходе дела.
Сражение, состоявшее только в том, что захвачен эскадрон французов, было представлено как блестящая победа над французами, и потому государь и вся армия, особенно после того, как не разошелся еще пороховой дым на поле сражения, верили, что французы побеждены и отступают против своей воли. Несколько минут после того, как проехал государь, дивизион павлоградцев потребовали вперед. В самом Вишау, маленьком немецком городке, Ростов еще раз увидал государя. На площади города, на которой была до приезда государя довольно сильная перестрелка, лежало несколько человек убитых и раненых, которых не успели подобрать. Государь, окруженный свитою военных и невоенных, был на рыжей, уже другой, чем на смотру, энглизированной кобыле и, склонившись на бок, грациозным жестом держа золотой лорнет у глаза, смотрел в него на лежащего ничком, без кивера, с окровавленною головою солдата. Солдат раненый был так нечист, груб и гадок, что Ростова оскорбила близость его к государю. Ростов видел, как содрогнулись, как бы от пробежавшего мороза, сутуловатые плечи государя, как левая нога его судорожно стала бить шпорой бок лошади, и как приученная лошадь равнодушно оглядывалась и не трогалась с места. Слезший с лошади адъютант взял под руки солдата и стал класть на появившиеся носилки. Солдат застонал.