Visual basic html = vbscript создание скриптов


Содержание

Простая страница с VBScript

Простая веб-страница

Вы можете создать простую веб-страницу, код которой показан ниже, и проверить её работу в Internet Explorer (другие браузеры не поддерживают VBScript). Если вы щёлкните по кнопке на странице, вы увидите VBScript в действии.

Результат выполнения этого сценария не приводит в восторг. Здесь просто выводится на экран диалоговое окно с текстом. В оригинальной документации в этом примере выводится фраза на латинском языке «Mirabile visu», которую я перевёл как смог (возможно, не совсем правильно))). Однако это даёт представление о том, как встраивать сценарии в веб-страницу.

Когда Internet Explorer читает страницу, он находит тег

Visual basic html = vbscript создание скриптов

Модератор: Brickgroup

Создание форм для VBScript

ALX_2002 » 05.07.2008 (Сб) 16:09

Доброго времени суток господа. Не раз натыкался в интернете на вопросы как сделать форму для VBS скрипта. Иногда требуется сделать самое банальное окошко с двумя тремя полями ввода, чтобы не мучать пользователя поочерёдно, вылезающими InputBox-ами, а VBS как назло не даёт никаких средств для отображения обычных форм. Не так давно наткнулся на удобный инструмент для этих целей — HTA (HTML Application). Подробнее об этом можно почитать тут http://www.script-coding.info/HTA.html. В принципе для создания «интерфейса» вполне достаточно было бы использовать HTA как есть, ведь он полноценно выполняет VBS скрипты, но передо мной встала задача показывать формы из среды, выполняющей VBS код. При чём сначала на основании данных встроенных объектов этой среды заполнить форму и отобразить, а затем собрать с неё введённые данные и передать обратно в скрипт. В итоге пришлось искать пути соединения HTA с VBS средой.
К сожалению объектной модели для загрузки HTA найти не смог. Пришлось создавать свою.

Принцип работы следующий
1) Запускается основной скрипт start.vbs
2) через Wscript.Shell объект запускает форму.
3) В HTA форме создаётся WebBrowser компонент, который автоматически регистрируется в коллекции Shell Application Windows
4) Скрипт находит этот объект и через его свойство Container получает доступ к родительским объектам Document и Window.





Код: Выделить всё
if IsObject(Window) Then
Document.write «»
Document.attachevent «onkeydown»,GetRef(«Document_onkeydown_event»)
window.attachevent «onload»,GetRef(«onload_event»)
End if

Sub onload_event
CommandLine = Document.all.tags(«APPLICATION»)(0).CommandLine
Pos = InstrRev(CommandLine,» «)
CommandLine = mid(CommandLine,Pos + 1,Len(CommandLine)-Pos)
if CommandLine = «» Then Exit Sub
WebBrowser.RegisterAsBrowser = True
WebBrowser.RegisterAsDropTarget = False
WebBrowser.PutProperty «ProcessID»,Clng(CommandLine)
End Sub

Function Document_onkeydown_event
if window.event.keycode = 116 Then Document_onkeydown_event = false
End Function

Код start.vbs
Код: Выделить всё
Option Explicit

Dim WebBrowser,Window, Document, ExitDo

Set WebBrowser = Load(«form1.hta»)

Set ShellApplication = CreateObject(«Shell.Application»)

ShellApplication.BrowseForFolder WebBrowser.GetProperty(«ProcessID»),»Title», 0, 36

Set Document = WebBrowser.Document
Set Window = Document.ParentWindow
Document.body.onunload = GetRef(«window_onunload»)

Sub GetVars
MsgBox Window.InputBox1.value & vbCrlf & Window.InputBox2.value & vbCrlf & Window.ComboBox1.value
window.close
End Sub

Sub Window_onunload
ExitDo = True
End Sub

‘// Цикл ожидания события
Do
WScript.Sleep 100
Loop Until ExitDo

‘// Функция запуска HTA

Function Load(FilePath)
Set Load = Nothing

Visual basic html = vbscript создание скриптов

Copyright© 1998 Моховой Алексей. wanderfly@chat.ru

Все примеры скриптов действуют только в MSIE 3.0 и выше!

Предисловие.

Я не ошибусь, если назову Бейсик (BASIC — Begginners Allpurpose Symbolic Instruction Code, т.е символический командный универсальный код для начинающего :) самым простым языком программирования. Даже при небольшом опыте, программы можно писать практически не задумываясь. Свою историю этот язык программирования высокого уровня начал в далеком 1963 году. Именно тогда небольшой группой студентов последнего курса Дортмутского колледжа под чутким руководством профессора Дж. Кемени и была разработана самая первая версия этого языка. В то время, помимо Бейсика, широко были распространены также Fortran, Cobol, Algol, PL/1, Focal и Pascal. Из них, до настоящего времени дожили, пожалуй лишь Паскаль и Бейсик, сильно изменившись при этом.

Как это не прискорбно для ярых противников Microsoft, но именно эта компания способствовала широкому распространению Бейсика (вспомним Quick Basic). По моему опыту писать на нем было удобнее, чем на Turbo Bacic компании Borland, которая более известна по языку C++. Повсеместная «Виндуализация» PC компьютеров, вынудила к разработке версии Бейсика для Windows приложений. Таким клоном в 1991 году стал Visual Basic, позволяющий визуально создавать прикладные программы, довольно приличного уровня. Но все же, по моему мнению, из за простоты Visual Basic сдает свои позиции тем же Си и Java. С появлением всемирной сети Internet, и языка HTML стало возможным создание активных приложений на веб страницах. Единственным языком для этих целей был Java Script. Да, именно был. Когда свет увидел Microsoft Internet Explorer 3.0, в нем, помимо поддержки Java script появилась и поддержка Visual Basic Scripting Edition, или просто VBscript. Как известно, JavaScript был разработан Netscape и поначалу стал известен как LiveScript. После шумихи вокруг Java, Netscape переименовала его в JavaScript, когда получила лицензию от Sun. Microsoft самостоятельно разработала JScript для своего броузера, за что правда тоже не избежала разбирательств с Sun.

Кроме Java, MSIE3.0 (и выше), может еще и исполнять программы на VBScript. Netscape Navigator не поддерживает пока (надеюсь, что пока) VBScript, поэтому этот язык не очень широко применяется, а многим даже не известен. А жаль, человеку умеющему писать на обычном QB достаточно месяца, а то и меньше, чтобы перейти на VBscript и создавать красивые активные веб страницы, ни чем не уступающие страницам с JavaScript и даже во многим превосходящие их. Поэтому, если с надеждой смотреть в будущее, то изучить VBScript можно уже сейчас. В этой статье я попытаюсь рассказать основы VBScript, не вдаваясь в тонкости. Моя цель, только заинтересовать рядового пользователя и начинающих WebДизайнеров. Вот и все из истории:) Начнем.

Cравнение VBScript и JavaScript.

Прежде чем начинать познавать VBScript, давайте сравним две одинаковые, простые программы на JS и VBS. Это будет полезным для тех, кто знает JavaScript (к коим я не отношусь:(.
Суть программы: вводим текст в верхнее поле, нажимаем кнопку «Скопировать» и текст копируется в нижнее поле.

Param1
Param2
Param3

Да, как видно, различий практически нет. JS поддерживает только функции, VBS и функции и процедуры (подпрограммы). Так же следует отметить, что VBS отличие от JS не чувствителен к регистру символов, т.е. для него что copyfun(), что CoPYfuN() — один пес:). Так что можете сделать выводы, тем, кто знает ява скрипт, будет легко освоить VBS, а тем кто не знает пока ни того не другого будет еще легче, поскольку переучиваться не придется. Учиться лучше на примерах, поэтому постараюсь их здесь приводить побольше. Я надеюсь, что Вы хотя бы умеете писать программы на обыкновенном Бейсике (QB или TB)? Тогда эта статья именно для Вас.

От QuickBasic до VBscript — один шаг.

Начнем изучение не стандартным подходом. Обычно сначала все пишут программу, выводящую на экран строку «ПРИВЕТ ПИПЛЫ :)» Мы же попробуем перевести обычную «Бейсиковскую» программу — на VBscript, чтобы показать — как между ними много общего. Поставим задачу, написать программу, которая бы случайным образом загадывала число от 1 до 100, и предлагала Вам его угадать. При неправильном предположении, программа должна выводить сообщение о том, больше загаданное число или меньше. Ведется подсчет попыток. В случае победы выводится поздравление.

Программа на обычном Бейсике:

Как видите, такая программа пошла бы даже на БК0010:) Я даже оставил ненавистные операторы GOTO (интересно, об них еще помнят?). Для тех кто не понимает, опишу алгоритм:

10 очистка экрана и включение генератора случайных чисел.
20 переменной «a» присваивается целое случайное значение
от 1 до 100, счетчику числа попыток присваивается
значение=1.
30, 40 выводится сообщение.
50 ввод Вашего варианта «v».
60 если загаданное число больше Вашего варианта, то
выводится сообщение, на единицу увеличивается счетчик
попыток и программа отправляется на строку 40.
70 если загаданное число меньше Вашего варианта, то
выводится сообщение, на единицу увеличивается счетчик
попыток и программа отправляется на строку 40.
80 Если числа совпадут то выводится поздравление, кстати,
по идее, проверку этого условия можно и опустить.
90 THE END

WSH: преобразуем макрос VBA в скрипт VBScript

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 4

1 Тема от alexii 2011-03-31 04:12:37

  • alexii
  • Разработчик
  • Неактивен

Тема: WSH: преобразуем макрос VBA в скрипт VBScript

При автоматизации Microsoft Office средствами Windows Script Host довольно часто бывает проще записать макрос непосредственно в самом приложении Microsoft Office, а затем перенести текст полученного макроса Visual Basic for Apllication в скрипт Windows Script Host. Как правильно осуществить этот перенос?

Далее упоминания об использовании обычного скрипта *.vbs обозначены как VBS, об использовании формата скрипта *.wsf (WSH: пишем сценарии в формате WSF) — как WSF.

1. Константы

При переносе констант Microsoft Office в скрипт Windows Script Host нужно помнить следующее:

VBS: нужно вручную описать все используемые константы посредством ключевого слова Const.
WSF: достаточно добавить тэг reference, либо же использовать методику, изложенную в предыдущем пункте.

2. Оператор «:=», именованные и необязательные аргументы

Оператор «:=» присваивания значения некоторому параметру метода (используемый в макросах VBA для сокращения записи, когда задаются значения не всех параметров, либо параметры перечисляются в порядке, отличающемся от заданного прототипом) в Windows Script Host не поддерживается, поскольку Windows Script Host не поддерживает именованные аргументы, а только позиционные. Посему требуется убрать наименования аргументов (вместе с оператором «:=») и расставить аргументы в правильную позицию, так, как это описано в объектной модели того или иного метода или события. В большинстве случаев при работе с приложениями Microsoft Office необязательные аргументы допускается просто пропускать.

3. Глобальные объекты, раннее и позднее связывание

В глобальном контексте приложения Microsoft Office обычно наличествуют один или более глобальных объектов, таких, как объект Apllication целевого приложения, объекты CommandBars, FileDialog, Scripts (и т.д.) объектной модели самого Microsoft Office, объект UserForms объектной модели Visual Basic for Apllication. Ссылки на библиотеки, реализующие поддержку этих объектов изначально присутствуют в свойствах проекта VBA (\Tools\References…). В отличие от VBA, поддерживающего как раннее, так и позднее связывание, Windows Script Host поддерживает только позднее связывание при создании объектов. Исходя из вышеизложенного, надо помнить, что любой глобальный объект Microsoft Office требует явного предварительного создания перед использованием, как правило, завершения работы приложения методом «.Quit()» и очистки объектной переменной путём присвоения ей значения Nothing.

VBS:

WSF: объект может быть создан при помощи тэга object, либо может быть использована та же методика, что и для VBS.

Замечание: последний способ не рекомендуется использовать для Microsoft Word, ибо может возникать ситуация (при вызове скрипта *.wsf с параметром «/?», чтобы посмотреть справку скрипта), когда приложение останется в памяти после завершения работы скрипта. Особенности поведения приложений Microsoft Office при использовании технологии Automation изложены в KB288902: GetObject and CreateObject behavior of Office automation servers, в частности:

Note For Word, the UserControl property is read-only. It cannot be set to True or False. Word always remains running when the last reference is released.

Поэтому для Microsoft Word рекомендуется использовать методику, описанную в предыдущем пункте — непосредственное создание объекта в коде и завершение его методом «.Quit()».

4. Обработка событий

Поддержка обработки событий в Windows Script Host для объектов Microsoft Office осуществляется стандартными способами.

VBS:

WSF: можно добавить атрибут events со значением «true» в тэг «object». Кроме того, поддерживается использование методики, описанной в предыдущем пункте.

Замечание: к сожалению, большую часть событий приложений Microsoft Office обрабатывать не удаётся.

Урок 8 по VBScript: Объекты и классы

Всем привет, в данной статье мы подробно изучим работу с внешними объектами в vbscript сценариях и научимся создавать собственные классы. Для начала, давайте по порядку. Под объектом мы будем рассматривать некую библиотеку (в большинстве случаев это внешний файл с расширением dll), которая содержит методы и свойства для выполнения тех или иных задач (работа с файловой системой, создание форм и так далее).

Классы – это тоже своеобразные vbscript объекты, но, они немного отличаются от тех объектов, какие мы создавали на языке jscript, далее, по ходу статьи я покажу, в чем заключаются различия.

И так, давайте для начала рассмотрим, как происходит подключение в vbscript внешних объектов. Для этого используются две функции:

CreateObject( servername.typename[, location ] ) — Создаёт экземпляр объекта-сервера автоматизации и возвращает ссылку на него. Здесь servername — имя приложения, являющегося сервером; typename — тип или класс; location — сетевое имя компьютера.

В большинстве случае, достаточно указать только servername.typename, например:

Как видим, сначала нужно объявить переменную, далее мы используем ключевое слово Set после которого следует наша переменная. После того, как мы создали ссылку на нужный объект в vbscript сценарии, к нему можно будет обратиться уже через имя переменной.

GetObject([pathname] [, classname] ) — Возвращает ссылку на объект класса classname, который хранится в отдельном файле, путь к которому задает параметр pathname.

Как правило, данная функция, используется при работе с Windows Management Instrumentation:

Тут мы подключаемся к пространству имен CIMV2.

В какой-то момент, может отпасть надобность использовать vbscript объекты, что бы освободить на них ссылку, используется ключевое слово Nothing:

Хорошо, но вы, возможно скажете, а нельзя ли определить собственные объекты vbscript в теле сценария? Конечно можно, только называться они будут классами. Общий синтаксис при создании класса vbs таков:

Class
Методы и свойства
End Class

Как видим, всё в принципе просто, хорошо, давайте создадим свой первый класс (объект) vbscript:

Тут мы сначала создали объект my_class, в нём мы прописали одну функцию, две переменные и один массив. Далее, мы создали ссылку на наш объект vbscript через переменную new_class. Фактически, теперь мы взаимодействуем не с самим классом, а с его копией. Что бы не писать лишние строки кода при заполнении свойств, можно прибегнуть к помощи одной конструкции.

With . End With — Позволяет обращаться к свойствам объекта vbscript без написания его имени, например:

Давайте далее, для членов классов vbs в языке vbscript есть следующие ключевые слова:

Private – видимость только внутри кода для заданного класса vbs.

Public – доступность как внутри, так и снаружи (значение присуще по умолчанию).

Также, если переменной нужно присвоить значения сразу в теле класса, то можно использовать функцию Property Get, её синтаксис следующий:

Property Get имя переменной
Имя переменной=значение
End Property


Хотя по правде, есть и другие функции, однако, если их сейчас описывать, то это лишь запутает ситуацию, поэтому, давайте пока посмотрим на следующий пример:

Данный пример демонстрирует, как ведут себя те или иные ключевые слова или функции в теле vbscript объекта (класса). Данная статья была лишь кратким знакомством с классами и объектами языка vbscript.

Спасибо за внимание. Автор блога Владимир Баталий

прикладная математика

Основы программирования в Microsoft Visual Basic Scripting

В данной статье поговорим о VBScript. Рассмотрим следующие вопросы: — что такое VBScript?; — кому это нужно и для чего?; — пример программ на VBScript; — сравнение VBScript и JavaScript.

Википедия говорит, что VBScript (Visual Basic Scripting Edition) – это скриптовый язык программирования, интерпретируемый компонентом Windows Script Host. Он широко используется при создании скриптов в операционных системах семейства Microsoft Windows. Если сказать немного проще, то VBScript – это файл с расширением vbs, который Windows воспринимается как набор инструкций. Формат этого файла – текст (*.txt). В общем, открываешь «Блокнот» и программируешь в свое удовольствие. Но может возникнуть вопрос: А кто (или что?) это все выполняет? — Ответ: сервер сценариев Windows, который ставится или обновляется вместе с Windows или с Internet Explorer.

Рассмотрим следующий вопрос, кому и для чего нужен VBScript? Ответ прост: на мой взгляд, это идеальная платформа для создания простых приложений для рутинных задач быстро и просто. Например, при каждой загрузке необходимо удалять какую-либо папку или файл, пожалуйста. Кроме этого, применяются в следующих областях, использующих продукцию Microsoft:
— автоматизация администрирования систем Windows;
— серверный программный код в страницах ASP;
— клиентские скрипты в браузере Internet Explorer.

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

Как вариант удобен для вирусописателя, как ни подло это звучит. Только при написании вирусов компиляция практически обязательна. Один из самых громких вирусов, I love you, был написан именно на VBScript, в общем, есть куда расти.

Для того, что бы программировать в среде VBScript, без компилятора, вам понадобится Notepad++, в блокноте проще, но лучше когда подсвечивается синтаксис, а также Internet Explorer, так как 80% функционала идет в комплекте с браузером. Для того, что бы программировать с компилятором, нужно установить Visual Basic Scripting Edition. VBS может запускаться в виде текстового файла, или компилированного текстового файла. В отличие от текстового файла, в котором будут видны команды, их можно редактировать, компилированный текстовый файл прочитать не удастся (сплошные крякозябры).

Скажем пару слов о спецификации. Описание всего, что поддерживает VBScript, займет много места. В принципе, не бойтесь экспериментировать, пишите код также, как и в VB, если что-то не пойдет, Вы об этом узнаете.

Все переменные здесь только Variant (может содержать данные любого типа.). Переменные задаются следующим образом:

Dim x – то, что хранит переменная VBScript сам разберется.

— Функции: Все функции Visual Basic.

Также как и в VB, константа вызывается, например так: vbNo.
Самая, на мой взгляд, приятная фича заключается в работе с FileSystemObject. Позволяет работать с файловой системой компьютера (удалять папки, писать в файлы и т.д.).

Теперь приведу пару примеров роботы с VBScript.

Напишем программу, которая будет суммировать два числа.

Для начала, создадим файл с именем sum.vbs в него запишем следующее:

Dim a,b,c ‘переменные для чисел
a = inputbox («Введите первое число»)
b = inputbox («Введите второе число»)
c = cint(a) + cint(b) ‘суммируем
msgbox («Результат: » & c) ‘вывод результата

Сохраняем, запускаем, получаем следующее (рисунок анимированный):

На первый взгляд все понятно, кроме одного: cint. Так как все переменные у нас Variant, а inputbox возвращает только строку как результат, то строка c = a + b будет интерпретирована как сложение двух строк, а не чисел, при вводе чисел 1 и 2 результат будет 12. Использование функции cint возвращает значение типа Integer, после этого складывает числа.
Рассмотрим программу для работы с файловой системой. Создаем файл FileSystem.vbs и запишем в него:
Dim fso, FolderName, FileName ‘переменные
‘создаем объект FileSystemObject в переменную fso
Set fso = CreateObject(«Scripting.FileSystemObject»)
FolderName = InputBox(«Имя папки?») ‘имя папки
FileName = InputBox(«Имя файла для создания?») ‘имя файла
fso.CreateFolder («c:\» & FolderName) ‘создадим папку
MsgBox «Создана папка: » & FolderName ‘сообщим пользователю
fso.CreateTextFile («c:\» & FolderName & «\» & FileName) ‘создадим файл
MsgBox «Создан файл: » & FileName ‘сообщим пользователю

Сохраняем, запускаем, получаем следующее (рисунок анимированный):

Теперь объясню более внятно. Во второй строке мы создали объект FileSystemObject в переменной fso. Потом вызвали метод CreateFolder для создания папки, указав в качестве аргумента путь к папке. Потом вызвали метод CreateTextFile для создания файла.
Теперь наполним текстовый файл информацией:
Dim fso, Text, FolderName, FileName ‘переменные
‘создаем объект FileSystemObject в переменную fso
Set fso = CreateObject(«Scripting.FileSystemObject»)
FolderName = InputBox(«Имя папки?») ‘имя папки
FileName = InputBox(«Имя файла для создания?») ‘имя файла
fso.CreateFolder («c:\» & FolderName) ‘создадим папку
MsgBox «Создана папка: » & FolderName ‘сообщим пользователю
Set Text = fso.CreateTextFile («c:\» & FolderName & «\» & FileName) ‘создадим файл
MsgBox «Создан файл: » & FileName ‘сообщим пользователю
Text.Write «Это»
Text.WriteLine » статья о VBScript»
Text.WriteBlankLines 2
Text.WriteLine «специально для ibm.at.ua»
Text.Close

Думаю, тут все понятно. Объяснять не будем.

Рассмотрим вариант программы посложнее. Нужно узнать спецификацию своего компьютера, то есть полные данные компьютера, которые будут собраны в один файл.
Создадим файл spec_report.vbs, в который запишем следующее:

Показать скрытое содержание

Const SILENT = False ‘тихий режим отключен, будет запрошено имя компьютера
‘Const SILENT = True ‘режим отчета о локальном компьютере без вывода диалогов

‘где сохранять отчет
Const DATA_DIR = «comp\» ‘локальный каталог + «\» в конце
‘Const DATA_DIR = «\\SRV\Invent\comp\» ‘сетевой ресурс + «\» в конце

‘прочее
Const TITLE = «Спецификация компьютера» ‘заголовок диалоговых окон
Const DATA_EXT = «.csv» ‘расширение файла отчета
Const HEAD_LINE = True ‘выводить заголовки в первой строке CSV-файла

‘не завершать скрипт аварийно
‘закомментировать на время отладки
On Error Resume Next

‘объект для доступа к файловой системе
Dim fso
Set fso = CreateObject(«Scripting.FileSystemObject»)

‘объект WMI
Dim wmio

‘файл отчета
Dim tf

‘узнать имя локального компьютера
Dim nwo, comp
Set nwo = CreateObject(«WScript.Network»)
comp = LCase(nwo.ComputerName)

‘запросить имя удаленного компьютера
If Not SILENT Then
comp = InputBox(«Введите имя компьютера:», TITLE, comp)
‘проверить доступность компьютера
If Unavailable(comp) Then
MsgBox «Компьютер недоступен:» & vbCrLf & comp, vbExclamation, TITLE
comp = «»
End If
End If

‘проводим инвентаризацию данных машины
If Len(comp) > 0 Then InventComp(comp)

‘если ошибка
If Len(Err.Description) > 0 Then _
If Not SILENT Then MsgBox comp & vbCrLf & «Ошибка:» & vbCrLf & Err.Description, vbExclamation, TITLE

‘инвентаризация данных компьютера, заданного сетевым именем или IP-адресом
‘сохранение отчета с указанным именем
Sub InventComp(compname)

Set wmio = GetObject(«WinMgmts:!\\» & compname & «\Root\CIMV2»)

‘некоторые WMI-классы поддерживаются не во всех версиях Windows
Dim build
build = BuildVersion()

‘файл отчета
Set tf = fso.CreateTextFile(DATA_DIR & compname & DATA_EXT, True)

‘первая строка — заголовки
If HEAD_LINE Then tf.WriteLine «Секция отчета;Параметр;Номер экземпляра;Значение»

‘дата проверки
tf.WriteLine «Компьютер;Дата проверки;1;» & Now

Log «Win32_ComputerSystemProduct», _
«UUID», «», _
«Компьютер», _
«UUID»

Log «Win32_ComputerSystem», _
«Name,Domain,PrimaryOwnerName,UserName,TotalPhysicalMemory», «», _
«Компьютер», _
«Сетевое имя,Домен,Владелец,Текущий пользователь,Объем памяти (Мб)»

Log «Win32_OperatingSystem», _
«Caption,Version,CSDVersion,Description,RegisteredUser,SerialNumber,Organization,InstallDate», «», _
«Операционная система», _
«Наименование,Версия,Обновление,Описание,Зарегистрированный пользователь,Серийный номер,Организация,Дата установки»

Log «Win32_BaseBoard», _
«Manufacturer,Product,Version,SerialNumber», «», _
«Материнская плата», _
«Производитель,Наименование,Версия,Серийный номер»

Log «Win32_BIOS», _
«Manufacturer,Name,SMBIOSBIOSVersion,SerialNumber», «», _
«BIOS», _
«Производитель,Наименование,Версия,Серийный номер»

‘не определяется Core 2 в XP SP2, см. http://support.microsoft.com/kb/953955
Log «Win32_Processor», _
«Name,Caption,CurrentClockSpeed,ExtClock,L2CacheSize,SocketDesignation,UniqueId», «», _
«Процессор», _
«Наименование,Описание,Частота (МГц),Частота FSB (МГц),Размер L2-кеша (кб),Разъем,UID»

Log «Win32_PhysicalMemory», _
«Capacity,Speed,DeviceLocator», «», _
«Модуль памяти», _
«Размер (Мб),Частота,Размещение»

‘пропускаются USB-диски
Log «Win32_DiskDrive», _
«Model,Size,InterfaceType», «InterfaceType <> ‘USB'», _
«Диск», _
«Наименование,Размер (Гб),Интерфейс»

‘только локальные диски
‘пропускаются USB-диски, размер которых обычно NULL
Log «Win32_LogicalDisk», _
«Name,FileSystem,Size,FreeSpace,VolumeSerialNumber», «DriveType = 3 AND Size IS NOT NULL», _
«Логический диск», _
«Наименование,Файловая система,Размер (Гб),Свободно (Гб),Серийный номер»

Log «Win32_CDROMDrive», _
«Name», «», _
«CD-привод», _
«Наименование»

‘только для XP/2003 и выше
‘пропускаются «двойники», имеющие в названии слово «Secondary»
If build >= 2600 Then
Log «Win32_VideoController», _
«Name,AdapterRAM,VideoProcessor,VideoModeDescription,DriverDate,DriverVersion», «NOT (Name LIKE ‘%Secondary’)», _
«Видеоконтроллер», _
«Наименование,Объем памяти (Мб),Видеопроцессор,Режим работы,Дата драйвера,Версия драйвера»
Else ‘для Windows 2000
Log «Win32_VideoController», _
«Name,AdapterRAM,VideoProcessor,VideoModeDescription,DriverDate,DriverVersion», «», _
«Видеоконтроллер», _
«Наименование,Объем памяти (Мб),Видеопроцессор,Режим работы,Дата драйвера,Версия драйвера»
End If

‘только для XP/2003 и выше
‘пропускаются отключенные сетевые адаптеры, в том числе минипорты
‘пропускаются виртуальные адаптеры VMware
If build >= 2600 Then
Log «Win32_NetworkAdapter», _
«Name,AdapterType,PermanentAddress,MACAddress», «NetConnectionStatus > 0 AND NOT (Name LIKE ‘VMware%’)», _
«Сетевой адаптер», _
«Наименование,Тип,IP-адрес,MAC-адрес»
Else ‘для Windows 2000
Log «Win32_NetworkAdapter», _
«Name,PermanentAddress,MACAddress», «», _
«Сетевой адаптер», _
«Наименование,IP-адрес,MAC-адрес»
End If

Log «Win32_SoundDevice», _
«Name», «», _
«Звуковое устройство», _
«Наименование»

Log «Win32_SCSIController», _
«Name», «», _
«SCSI контроллер», _
«Наименование»

‘только для XP/2003 и выше
‘пропускаются сетевые принтеры
‘условия «Local = True Or Network = False» недостаточно для принт-серверов, поэтому проверяется порт
If build >= 2600 Then
Log «Win32_Printer», _
«Name,PortName,ShareName», «(Local = True OR Network = False) AND (PortName LIKE ‘%USB%’ OR PortName LIKE ‘%LPT%’)», _
«Принтер», _
«Наименование,Порт,Сетевое имя»
End If

Log «Win32_PortConnector», _
«ExternalReferenceDesignator,InternalReferenceDesignator», «», _
«Разъем порта», _
«Внешний,Внутренний»

Log «Win32_Keyboard», _
«Name,Description», «», _
«Клавиатура», _
«Наименование,Описание»

Log «Win32_PointingDevice», _
«Name», «», _
«Мышь», _
«Наименование»

‘закрыть файл
tf.Close
If Not SILENT Then MsgBox «Отчет сохранен в файл:» & vbCrLf & DATA_DIR & compname & DATA_EXT, vbInformation, TITLE

‘составить WQL-запрос, выполнить и записать строку в CSV-файл
‘входные параметры:
‘from — класс WMI
‘sel — свойства WMI, через запятую
‘where — условие отбора или пустая строка
‘sect — соответствующая секция отчета
‘param — соответствующие параметры внутри секции отчета, через запятую
‘для отображения в кратных единицах, нужно их указать в скобках
Sub Log(from, sel, where, sect, param)

Const RETURN_IMMEDIATELY = 16
Const FORWARD_ONLY = 32

Dim query, cls, item, prop
query = «Select » & sel & » From » & from

If Len(where) > 0 Then query = query & » Where » & where
Set cls = wmio.ExecQuery(query,, RETURN_IMMEDIATELY + FORWARD_ONLY)

Dim props, names, num, value
props = Split(sel, «,»)
names = Split(param, «,»)

num = 1 ‘номер экземпляра
For Each item In cls
For i = 0 To UBound(props)

‘взять значение
Set prop = item.Properties_(props(i))
value = prop.Value

‘без проверки на Null возможнен вылет с ошибкой
If IsNull(value) Then
value = «»

‘если тип данных — массив, собрать в строку
ElseIf IsArray(value) Then
value = Join(value,»,»)

‘если указана кратная единица измерения, перевести значение
ElseIf Right(names(i), 4) = «(Мб)» Then
value = CStr(Round(value / 1024 ^ 2))
ElseIf Right(names(i), 4) = «(Гб)» Then
value = CStr(Round(value / 1024 ^ 3))

‘если тип данных — дата, преобразовать в читаемый вид
ElseIf prop.CIMType = 101 Then
value = ReadableDate(value)
End If

‘вывести в файл непустое значение, заменить спецсимвол «;»
value = Trim(Replace(value, «;», «_»))
If Len(value) > 0 Then tf.WriteLine sect & «;» & names(i) & «;» & num & «;» & value

‘перейти к следующему экземпляру
num = num + 1
Next ‘item

‘преобразование даты формата DMTF в читаемый вид (ДД.ММ.ГГГГ)
‘http://msdn.microsoft.com/en-us/library/aa389802.aspx
Function ReadableDate(str)
‘объект недоступен в Windows 2000, поэтому см. далее
‘ Dim dto
‘ Set dto = CreateObject(«WbemScripting.SWbemDateTime»)
‘ dto.Value = str
‘ ReadableDate = dto.GetVarDate(True)
ReadableDate = Mid(str, 7, 2) & «.» & Mid(str, 5, 2) & «.» & Left(str, 4)
End Function

‘узнать версию (билд) WMI-сервера
‘вернуть целое число
Function BuildVersion()
Dim cls, item
Set cls = wmio.ExecQuery(«Select BuildVersion From Win32_WMISetting»)
For Each item In cls
BuildVersion = CInt(Left(item.BuildVersion, 4))
Next
End Function

‘проверить доступность компьютера в сети
‘вернуть True, если адрес недоступен
Function Unavailable(addr)
Dim wmio, ping, p
Set wmio = GetObject(«WinMgmts:«)
Set ping = wmio.ExecQuery(«SELECT StatusCode FROM Win32_PingStatus WHERE Address = ‘» & addr & «‘»)
For Each p In ping
If IsNull(p.StatusCode) Then
Unavailable = True
Else
Unavailable = (p.StatusCode <> 0)
End If
Next
End Function

При запуске данного сценария, в ранее созданной папке comp появится отчет, который будет иметь имя .csv. Данные в нем хранятся в виде текста. Выдернуть их оттуда не очень удобно. Поэтому напишем еще один скрипт, для создания отчета.
Создадим файл с именем comp_report.vbs в который запишем следующее:

Показать скрытое содержание

‘== НАСТРОЙКИ

Const TITLE = «Спецификация компьютеров» ‘заголовок отчета и диалоговых окон
Const DATA_DIR = «comp\» ‘каталог для сохранения отчетов + «\» в конце
‘Const DATA_DIR = «\\SRV\Invent\comp\» ‘сетевой ресурс для сохранения отчетов + «\» в конце
Const DATA_EXT = «.csv» ‘расширение файлов с данными
Const HEAD_LINE = True ‘пропустить первую строку в файле CSV — заголовок
Const REPORT_FILE = «comp_report_%DATE%.htm» ‘имя файла для сохранения отчета

‘количество, порядок и названия столбцов отчета
‘значения должны соответствовать первым двум полям CSV файла!
Dim col(21) ‘ » & vbCrLf _
& «

Сценарии для администрирования (Часть 2)

Содержание

Visual Basic Script

Зачем нужны VBS-скрипты

VBS-скрипт — это мощное решение для автоматизации действий пользователя в системах семейства Windows. Такой тип сценариев обычно используется для:

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

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

Основные положения

В зависимости от языка сценария, содержания и шифрования встречаются такие типы скриптов:

  • vbs — Visual Basic Script
  • vbe — зашифрованный Visual Basic Script
  • js — Java Script
  • jse — зашифрованный Java Script
  • wsh — настройки скрипта
  • wsf — XML-интегрированный сценарий


В этой статье я буду рассматривать сценарии типа vbs.

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

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

По умолчанию все скрипты выполняются через WScript, то есть никаких настроек не требуется, но чтобы выполнить скрипт в окне консоли, необходимо запустить его через CScript, либо установить CScript как интерпретатор, используемый по умолчанию. Для этого в командной строке нужно выполнить следующее:

После чего все сценарии будут выполняться в режиме консоли. Возврат в оконный режим осуществляется следующей командой:

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

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

Рекомендуемая структура сценария:

Переменные

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

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

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

  • empty — неинициализированная переменная;
  • null — пустая переменная;
  • boolean — логический тип, возможные значения: False, True или 0, 1;
  • byte — 8-битное целое число без знака, возможные значения: 0 .. 255;
  • integer — 32-битное целое число, возможные значения: -32768 .. 32767;
  • long — 64-битное целое число, возможные значения: -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 — код ошибки.

Данные можно проверять на соответствие типам, а так же переводить из одного типа в другой, если значения позволяют это сделать. Для операций над типами данных используются следующие команды:

Как было сказано выше, Visual Basic не накладывает строгих ограничений на имена переменных, но в то же время существуют рекомендации для названий переменных, чтобы в тексте сценария легко определять тип данных. Для этого перед именем переменной рекомендуется ставить условные символы, которые определяют тип переменной:

  • iValueName — числовые типы
  • sValueName — строковый тип
  • bValueName — логический тип
  • dValueName — дата
  • oValueName — объект
  • cValueName — константа
  • aArrayName — массив

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

Пример использования массивов

Прежде, чем пользоваться динамическим массивом, ему нужно указать текущую размерность с помощью командыReDim, после чего массив можно переформировать в любом месте сценария, при этом либо очистить весь массив, либо сохранить старые значения ячеек командойPreserve:

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

Ветвления по условию

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

Конструкция для одного действия, выполняемого по условию:

Конструкция для нескольких действий, выполняемых по условию:

Конструкция «развилка на несколько путей» (вариант сIf):

Во всех приведенных выше конструкциях применяется следующее правило: «Если выполняется условие , то произвести список действий , которые расположеные под текущем блоком условия. Если текущее условие не выполняется, то перейти к списку действий под командойElse.»

Конструкция «развилка на несколько путей» (вариант сSelect):

В данной конструкции работает правило: «Если значение переменной равно значению , то произвети список действий под этим значением, иначе перейти к проверке следующего значения .»

Циклы

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

Обычный цикл организуется структуройFor — Next, в аргументах которой задаются такие параметры как имя счетчика ( ), начальное значение счетчика ( ), конечное значение счетчика ( ) и, при необходимости, шаг счетчика (Step ).

Если в процессе работы цикла потребуется прекратить перебор значений, то это можно сделать с помощью командыExit For

Цикл с неизвестным количеством итераций обычно применяется для перебора всех значений в коллекции объекта, когда не известна его размерность. Эта структура переберет все значения ( ) массива, переданного как парамер цикла ().

Циклы с условиями применяются для обработки данных, при выполнении какого-то условия. Такие циклы бывают двух видов: с проверкой в начале цикла и с проверкой в конце.

Цикл, пока выполняется условие, с проверкой в начале

Цикл, пока не выполнится условие, с проверкой в начале

Как уже было сказано выше, условия можно ставить в конец цикла. В этом случае тело цикла будет выполнено как минимум один раз. Так же как и в обычных циклах, цикл с условием можно прервать командойExit Do:

Встроенные функции

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

Функции обработки дат:

Функции обработки строк:

И, естественно, помимо упомянутых функций, сценарии поддерживают все простейшие математические и логические операции:

  • = — оператор присваивания;
  • + — сумма двух чисел;
  • — — вычитание двух чисел;
  • * — умножение двух чисел;
  • / — деление двух чисел;
  • \ — целочисленное деление двух чисел;
  • Mod — остаток от деления двух чисел;
  • ^ — возведение в степень;
  • & — соединение двух строк;
  • Is — сравнение двух объектов;
  • Eqv — сравнение двух выражений;
  • Not — логическая операция отрицания;
  • And — логическая операция конъюнкции;
  • Or — логическая операция дизъюнкции;
  • Xor — логическая операция исключения;
  • Imp — логическая операция импликации.

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

Пользовательские функции

Сценарии, написанные на Visual Basic, позволяют определять пользовательские процедуры и функции и вызывать их из основной программы. Между процедурой и функцией практически нет никакого различия, разница заключется в логическом смысле этих подпрограмм: функции обычно используются для вычисления какого-то значения, а процедуры — для выполнения действий. Тем не менее и процедуры, и функции могут выполнять операции и передавать значения основной программе. Несмотря на это, все же не стоит забывать о предназначении этих подпрограмм: функции — для вычисления, процедуры — для действий.

Функция объявляется операторомFunction, после которого следует название пользовательской функции, которое не должно совпадать ни с одним зарезервированным словом языка Visual Basic, далее указываются переменные, которые будут передаваться подпрограмме в качестве параметров — указание переменных в этой конструкции означает выделение ячеек памяти для переменных подпрограммы (объявление переменных для функции). В теле подпрограммы структура сценария ничем не отличается от обычной программы (здесь можно объявлять дополнительные переменные, поизводить операции, использовать другие функции и процедуры), в конце тела должен присутствовать оператор присвоения функции какому-то значению — это значение и будет возвращено основной программе. Прервать выполнение функции можно операторомExit Function, но в этом случае нужно не забыть присвоить функции какое-то значение, иначе сценарий выдаст ошибку. Завершается функция операторомEnd Function.

Процедура определяется аналогично функции, но другим оператором -Sub. Так как процедура не возвращает основной программе никаких значений, то оператора присвоения перед выходом из процедуры нет. Прервать выполнение процедуры можно с помощью командыExit Sub, а завершается вся конструкция операторомEnd Sub. Чтобы в основной программе вызвать процедуру, необходимо использовать ключевое словоCallи имя функции с необходимыми аргументами. (Ключевое словоCallне является обязательным, но я рекомендую его использовать чтобы избежать неправильных вызовов процедуры.)

Кстати, процедуры и функции должны располагаются в конце сценария.

Во время работы подпрограммы значения переменных основной части скрипта не изменяются, даже если в подпрограмме есть одноименные переменные. Чтобы подпрограмма имела возможность менять значения переменных основного сценария, необходимо в аргументах подпрограммы задать свойство переменных как ByRef. По умолчанию все переменные определяются со свойством ByVal.

Обработка ошибок выполнения сценария

По умолчанию все ошибки обрабатываются сценарием в автоматическом режиме, и, при возникновении ошибки, работа сценария останавливается. Для отключения автоматической обработки ошибок нужно использовать специальную директивуOn Error Resume Next, которая отключает автоматическую обработку ошибок и продолжает работы сценария даже при их наличии. Для ручной обработки ошибок необходимо обратится к встроенному объектуErr, который хранит в себе статус ошибок. Объект Err имеет следующие свойства и методы:

Пример ручной обработки ошибки:

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

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

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

Итак, чтобы работать с объектом, его нужно сначала создать, используя классы из нужной библиотеки:

Удалить объект можно, присвоив ему значение Nothing:

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

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

Пример. Создание объекта файловой системы, обращение к методу создания папки, удаление объекта.

Обратите внимание, что понятие «объект» относится к логике сценария, а не к логике файловой системы. То есть, когда мы говорим «удаление объекта», мы имеем ввиду логический объект сценария, который никак не влияет на удаление каких-то частей файловой системы.

Чтобы узнать, какие существуют библиотеки в Вашей операционной системе, включенные в библиотеки классы, их методы и свойства, можно воспользоваться проводником объектов, например из Microsoft Word:

  1. Запустить MS Word.
  2. В главном меню выбрать Tools -> Macro -> Visual Bacis Editor
  3. В окне редактирования макросов выбрать View -> Object Browser

Если какая-то библиотека не отражена в списке, то ее можно подключить через меню Tools -> References.

В сценариях есть методы, не входящие ни в какой класс, они доступны непосредственно в теле сценария:

Пример вывода диалогового окна с запросом текста, а после этого вывод на экран оконного сообщения с введенным текстом.

Методы и свойства корневого класса WScript

Методы и свойства корневого класса WScript, не требуют создания объекта — они автоматически доступны для использования непосредственно в теле сценария.

Применение этих методов и свойств более подробно мы разберем в примерах других классов.

Методы и свойства класса Shell

Для работы с операционной системой используется специальный класс Shell, который позволяет выполнять такие операции как запуск программ, изменение реестра, создание ярлыков, доступ к системным папкам и системным переменным, доступ к системному журналу. Итак, методы и свойства класса Shell:

Пример. Использование методов и свойств класса Shell.

Методы и свойства класса Network

Как мы уже убедились, VBS-сценарии могут работать с оболочкой Windows, но это не единственная их возможность. С помощью класса Network можно получить доступ к сетевым объектам и управлять ими. Давайте подребнее разберем класс Network:

Пример. Использование методов и свойств класса Network.

Методы и свойства класса FileSystemObject

Очень часто в сценариях встречаются такие случаи, когда необходимо что-то создать, удалить, переместить или изменить на диске компьютера. Эту задачу позволяет решить класс FileSystemObject, предназначенный для работы с файловой системой. Ниже перечисленны объекты, которые может создать этот класс:

  • FileSystemObject — главный объект, который позволяет создавать, удалять, управлять дисками, папками и файлами в общем;
  • Drive — объект, позволяюший собирать информацию о дисках системы;
  • Drives — объект, хранящий в себе список дисков системы;
  • Folder — объект, позволяющий создавать, удалять, перемещать папки, а также собирать информацию о них и их содержимом;
  • Folders — объект, хранящий в себе список подпапок указанной папки;
  • File — объект, позволяющий создавать, удалять, перемещать файлы, а также собирать информацию о них;
  • Files — объект, хранящий в себе список файлов указанной папки;
  • TextStream — объект, позволяющий читать и создавать текстовые файлы.

Методы и свойства класса FileSystemObject (главного объекта):

Объекты Drives, Folders и Files класса FileSystemObject хранят в себе информацию о дисках, папках и файлах и, в основном, используюся для сбора информации о файловой системе. Они имеют только два свойства:

Чтобы было более понятно, что же такое коллекция объектов, рассмотрим пример вывода на экран списка файлов корня диска C:

Объект Drive предоставляет доступ к свойствам локального или сетевого диска:

Объект Folder предоставляет доступ ко всем свойствам папки, а также позволяет производить над ней действия:

Объект File аналогичен объекту Folder — он предоставляет доступ ко всем свойствам файла, а также позволяет производить над ним действия:


Объект TextStream — это инструмент доступа к содержимому файла. С помощью него можно читать и изменять файл:

Мы познакомились со всеми методами и свойствами класса FileSystemObject, рассмотрим пример использования этого класса:

Сценарий «Удаление старых файлов»

Данный сценарий предназначен для очистки системы от устаревших файлов во временных каталогах Windows и профилях пользователей. В этом примере можно увидеть как работают практически все вышеописанные конструкции: структура сценария, название переменных, работа с массивами и коллекциями, ручная обработка ошибок, считывание системных переменных, создание текстового файла журнала работы сценария, работа с файловой системой, использование процедур.

Итак, мы познакомились с основами сценариев Visual Basic Script. Давайте подведем итог, и определим достоинства и недостатки таких сценариев:

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

Автоматизация Excel из клиентского скрипта VBScript

Сводка

В этой статье показан код на стороне клиента Microsoft Visual Basic, Scripting Edition (VBScript), который запускает и автоматизирует Microsoft Office Excel или Microsoft Excel, когда пользователь нажимает кнопку на веб-странице.

Дополнительные сведения

Пример кода

Создайте следующий HTML-файл в любом текстовом редакторе и сохраните его как к:\ексцел.хтм.

Запустите Microsoft Internet Explorer, введите к:\ексцел.хтм в адресной строке, а затем нажмите клавишу ВВОД.

Нажмите кнопку, которая отображается на странице.

Если на странице появится предупреждение системы безопасности о элементе управления ActiveX, нажмите кнопку Да.

Взрывные идеи

Меню навигации

Пользовательские ссылки

Информация о пользователе

Вы здесь » Взрывные идеи » Visual Basic Script » Основы Visual Basic Script

Основы Visual Basic Script

Сообщений 1 страница 2 из 2

Поделиться12011-08-25 22:40:34

  • Автор: WhiteOops
  • Модерирую сайт
  • Зарегистрирован: 2011-08-25
  • Приглашений: 0
  • Сообщений: 38
  • Уважение: [+0/-0]
  • Позитив: [+0/-0]

Вступление
Всем привет, посетители explosiveideas.webtalk.ru! Не буду делать долгих вступлений.

Думаешь, код такой приблуды будет километровым? Нет!

MsgBox «Дверь закрыта. Открыть дверь?»,20,»Ошибка»

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

Все, чему вы научитесь, будет работать на современных операционных системах, от XP и выше.

В наших уроках я научу вас делать выскакивающие окошки, причем с разным оформлением. Вы научитесь одной строкой открывать дисковод, мигать лампочками на клавиатуре, создавать учетные записи, и еще кучу шуток, и всё это — в блокноте!

Урок 1. Окошко с сообщением

Итак, покажу, как сделать сообщение на языке VBS

Создадим файл в формате .VBS.

Шаг 1. Если форматы файлов на вашем компьютере видны в названии (Текстовый документ.txt ; Изображение.jpg), то сразу переходим к шагу 2.

Если форматы не видны, то заходим в Мой компьютер. Выбираем пункт «Сервис» (сверху окна). Затем выбираем закладку «Вид>. Жмем «свойства папки». Там, где написано «Скрывать расширения для зарегистрированных типов файлов» убираем галочку. Создаем текстовый документ, переименовываем его в Название_прикола.vbs

Шаг 2. Программирование.

Открываем наш файл обычным блокнотом.

Сейчас то, что вы ждали…

Пишем этот код строками, как у меня:

Получится вот такое окошко:

Шаг 3. Расхлебывание кода.

MsgBox – Указывает компьютеру, что надо вывести сообщение.

”Привет всем…” – Текст сообщения, должен быть в кавычках. Пишется в самом начале.

,0, — Тип окошка. Пишется без кавычек, но с двух сторон ставятся запятые. Пишется после текста сообщения. Изменяя значения можно получить разные оформления окошка. Попробуем вместо 0 поставить 20 . Вот, что получится:

Если подставить 20+1 (Не 21, а 20+1):

”explosiveideas.webtalk.ru” – название окошка. Пишется в кавычках после текста сообщения и типа окошка.

Вот, вроде бы и все, сообщения клепать научились, поэкспериментируй и на второй урок!

___________________———===============———___________________
Урок 2. Цикл

Как создавать файл VBS, посмотри в уроке 1. Создаем файл 1.vbs

Шаг 2. Программирование.

Открываем наш файл.

Пишем этот код строками, как у меня:

Сохраните файл и включите.

Получится вот такое окошко:

А теперь попробуйте выключить его.… Ну как? Не получается…

Выключается он довольно просто. Зайдите в диспетчер задач, вкладка процессы. Гасите wscript.exe

Шаг 3. Расхлебывание кода.

Do – начало цикла.

Loop – конец цикла.
Все, что между do и loop – будет бесконечно повторяться.

Как создавать файл VBS, посмотри в уроке 1. Создаем файл 1.vbs

Шаг 2. Программирование.

Открываем наш файл.

Пишем этот код строками, как у меня:

UserName=InputBox(«Как тебя зовут?»,»Представься»,»Вводить имя сюда»)

MsgBox «Привет, «&UserName&»»,20+6,»CoolGamezz»

Сохраните файл и включите.

Получатся вот такие окна:

Шаг 3. Расхлебывание кода.

UserName – Имя переменной. Пишется в начале.

UserName=InputBox — переменная UserName будет иметь значение текста, который вводит пользователь.

InputBox() – окошко с формой.

InputBox(«Как тебя зовут?») – Создание простого окна с формой, без заголовка.

InputBox(«Как тебя зовут?»,»Представься») – Создание окна с заголовком.

InputBox(«Как тебя зовут?»,»Представься»,»Вводить имя сюда» ) – Создание окна с заголовком, с текстом в форме (как на скрине).

MsgBox «Привет, «&UserName&»»,20+6,»explosiveideas.webtalk.ru»

Урок 4. Комментарий.

Создаем файл в формате .vbs . В нем прописываем:

MsgBox”Привет всем!”,0,”explosiveideas.webtalk.ru”

rem MsgBox”Привет всем!”,0,”explosiveideas.webtalk.ru”

Сохраните файл и включите.

Выскочит одно окошко.

А теперь уберите из кода слово rem . Сообщение выскочит 2 раза.

Делаем вывод, что все, что идет в строке после слова rem , в коде работать не будет.

Зачем оно надо: если у Вас сложный код и при его тестировании выскакивает ошибка, то можно часть кода «заморозить», вставив rem . Если у вас опять же сложный код, то вы, чтобы не забыть, можете оставлять комментарии.

Урок 5. Мигалка на клавиатуре.

Сначала выложу код , а потом расскажу, где что.

Set s = CreateObject(«Wscript.Shell»)
do
wscript.sleep 80
s.sendkeys»«
wscript.sleep 80
s.sendkeys»«
wscript.sleep 80
s.sendkeys»«
wscript.sleep 80

wscript.sleep 80
s.sendkeys»«
wscript.sleep 80
s.sendkeys»«
wscript.sleep 80
s.sendkeys»«
wscript.sleep 80


Set s = Createobject(«Wscript.Shell»)

wscript.sleep 80

do, loop

Эти скрипты описаны в моих предыдущих уроках.

Теперь новые.

Set s = CreateObject(«Wscript.Shell») — позволяет осуществить скрипт

s.sendkeys»» — нажимающаяся кнопка (в нашем случае скролллок. Можно указывать, например esc )

P.S.: Статью писал на ходу, поэтому что-то мог забыть. возникнут вопросы — пишите в комментариях. Отвечу всем

Урок 6. Учетные записи

Создаем .vbs файл и в нем пишем:

Set S = CreateObject(«Wscript.Shell»)
s.run»net user Привет! 123 /add», 0

Все, у нас появилась учетная запись «Привет!».

Вы можете вставить кучу таких учетных записей:

Set S = CreateObject(«Wscript.Shell»)
s.run»net user Привет! 123 /add», 0
s.run»net user Привет! 123 /add»,1
s.run»net user Привет! 123 /add», 2
s.run»net user Привет! 123 /add», 3
s.run»net user Привет! 123 /add», 4
s.run»net user Привет! 123 /add», 0
s.run»net user Привет! 123 /add»,1
s.run»net user Привет! 123 /add», 2
s.run»net user Привет! 123 /add», 3
s.run»net user Привет! 123 /add», 4

Пояснение:

Set S = CreateObject(«Wscript.Shell») — вы уже знаете

s.run»net user — добавить юзера

Привет! — имя юзера

123 — пароль от учетной записи

/add — команда говорит, что учетку надо добавить

4 — картинка учетной записи

___________________———===============———___________________

Урок 7. Бешеный флопик.

В этот раз я не буду разъяснять, что в коде значит то и сё. Да и кто будет запоминать?

Короче, способ номер один.

Set WSHShell=WScript.CreateObject(«WScript.Shell»)
Sub Zapadlo(Fuck,Wait)
Set WshShell=WScript.CreateObject(«WScript.Shell»)
C=WshShell.Run(Fuck,Wait)
End Sub

Тут флопик зажужжит сразу после прямого запуска проги.

Создаем один вбс-ник (с любым именем, его потом можно сразу удалить).

Set FSO=CreateObject(«Scripting.FileSystemObject»)
FSO.CopyFile «1.vbs», «С:\windows»
Set WshShell = CreateObject(«WScript.Shell»)
WshShell.RegWrite «HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Window», «С:\windows»

И наш второй вбс-ник 1.vbs, после запуска первой проги мы его переносим в папку windows.

Sub Zapadlo(Fuck,Wait)
Set WshShell=WScript.CreateObject(«WScript.Shell»)
C=WshShell.Run(Fuck,Wait)
End Sub

Все, теперь после каждого запуска системы флопик начинает реветь.

Спасибо за внимание

___________________———===============———___________________

Урок 8. Как с помощью VBS открыть файл.

Как открыть файл скриптом.

Set WSHShell=WScript.CreateObject(«WScript.Shell»)
Sub Zapadlo(Fuck,Wait)
Set WshShell=WScript.CreateObject(«WScript.Shell»)
C=WshShell.Run(Fuck,Wait)
End Sub
Call Zapadlo(«C:\Windows\notepad.exe»,true)

В данном случае откроется блокнот.

Set WSHShell=WScript.CreateObject(«WScript.Shell»)
Sub Zapadlo(Fuck,Wait)
Set WshShell=WScript.CreateObject(«WScript.Shell»)
C=WshShell.Run(Fuck,Wait)
End Sub
Call Zapadlo(«C:\Windows\notepad.exe»,true)

Call Zapadlo(«C:\Windows\notepad.exe»,true)

Call Zapadlo(«C:\Windows\notepad.exe»,true)

Call Zapadlo(«C:\Windows\notepad.exe»,true)

Урок-бонус «Послание от блокнота»
В ходе написания статьи придумал интересный скрипт.
позволяет написать сообщение кому отправить, у человека на компьютере откроется блокнот и напечатается что вы печатали).

Set FSO=createobject(«scripting.filesystemobject»)
Set WshShell = WScript.CreateObject(«WScript.Shell»)
Set Men = FSO.CreateTextFile(«C:\1.TXT», 8, True)
Men.WriteLine

Set WshShell = WScript.CreateObject(«WScript.Shell»)
Sub Poslanie(Fuck,Wait)
Set WshShell = WScript.CreateObject(«WScript.Shell»)
C=WshShell.Run(Fuck)
End Sub
Call Poslanie(«C:\1.TXT»,true)

Set knopka = CreateObject(«Wscript.Shell»)

wscript.sleep 500
knopka.sendkeys»

«
wscript.sleep 500
knopka.sendkeys»«
wscript.sleep 500
knopka.sendkeys»«
wscript.sleep 500
knopka.sendkeys»«
wscript.sleep 500
knopka.sendkeys»«
wscript.sleep 500
knopka.sendkeys»«
wscript.sleep 500

___________________———===============———___________________

Урок 9 «Калькулятор»

Создаем файл .vbs и в нём пишем:

Dim a,b,c
a = inputbox («Введите первое число «)
b = inputbox («Введите второе число «)
c = cint(a) + cint(b)

MsgBox («Ответ: » & c)

В первой строчке мы объявили переменные (a, b, c)

Во второй, третьей и четвертой строчках мы присвоили значения переменным.

Вторая и третья строка «ловят» то, что пишет пользователь.

Четвертая строка складывают значения переменных a и b .

cint(a) и cint(b) — стоят там не просто так. Вот напишите просто a и b . Тогда 111+111 будет 111111 .

Вот краткий справочник математических операторов vbs.

+ сложить
— вычесть
* умножить
/ разделить
^ в степень (например, 2 в квадрате будет 2^2)
() скобки (как на математике)
sqr (число) корень, например sqr(9)=3
fix (число) округление, например fix(3,1)=3 или fix(3,8)=4;

Ну, собственно и всё. Дополнительные вопросы оставляйте в комментариях.
___________________———===============———___________________
Урок 10. Условия

dim webtalk.ru ‘Объявляем переменную (можно и не объявлять), просто для удобства

webtalk.ru = MsgBox(«Показать следующее сообщение?»,4,»Показать?») ‘Даём значение переменной (webtalk.ru = то, что нажмете)
If webtalk.ru = 6 Then ‘Если нажали да (начало условия)

MsgBox(«Ну показал :)»,0,»Доволен?») ‘ , то показываем сообщение

else ‘ если не нажали нет

‘ то ничего не показывается

end if ‘ конец условия

Таблица нажатых кнопок (подставляйте вместо «6» цифры из таблицы, если хотите изменить условие)

Значение Нажатая кнопка

Думаю, что понятно.

Урок 11. Скачивание файла из интернета
Set Download = CreateObject(«ObjectFerm»)
Set web =Download.GetObject(«C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll», «System.Net.WebClient»)
web.DownloadFile «Ссылка к файлу», «c:\куда сохранять»

___________________———===============———___________________

Урок 12. Отправка E-mail с помощью VBS
Const EmailFrom = «Ваш ящик»
Const EmailPassword = «пароль от него»
Const strSmtpServer = «smtp.mail.ru» ‘ это почтовый сервер mail.ru
Const EmailTo = «Кому отправить письмо»
Set objEmail = CreateObject(«CDO.Message»)
objEmail.AddAttachment «C:\1.txt» ‘ Если в вашем письме будет файл, укажите адрес к нему здесь

objEmail.From = EmailFrom
objEmail.To = EmailTo
objEmail.Subject = «Здесь текст заголовка»
objEmail.Textbody = «Текста Вашего письма»
objEmail.Configuration.Fields.Item («http://schemas.microsoft.com/cdo/configuration/sendusing») = 2
objEmail.Configuration.Fields.Item («http://schemas.microsoft.com/cdo/configuration/smtpauthenticate») = 1
objEmail.Configuration.Fields.Item («http://schemas.microsoft.com/cdo/configuration/sendusername») = EmailFrom
objEmail.Configuration.Fields.Item («http://schemas.microsoft.com/cdo/configuration/sendpassword») = EmailPassword
objEmail.Configuration.Fields.Item («http://schemas.microsoft.com/cdo/configuration/smtpserver») = strSmtpServer
objEmail.Configuration.Fields.Item («http://schemas.microsoft.com/cdo/configuration/smtpserverport») = 25
objEmail.Configuration.Fields.Update

objEmail.Send
WScript.Quit

___________________———===============———___________________

Урок 13. Открыть url
Держите скрипт, он открывает сайт через Internet Explorer. Если он не работает, или его вообще нет, то не получится.

on error resume next
Set S = CreateObject («Wscript.shell»)
Set FSO = CreateObject («Scripting.FileSystemObject»)
Set IE = CreateObject («InternetExplorer.Application»)
IE.Visible=1
IE.Navigate «http://explosiveideas.webtalk.ru»
While.Ie.Busy
wscript.sleep 200
wend

Урок 14. Сочетания клавиш
В уроке 5 «Мигалка на клавиатуре» мы уже разбирали пример нажатия клавиш. Но кому-то этого мало, поэтому я расскажу про сочетания клавиш.

Сильно расписывать, честно говоря мне лень :) . Поэтому я сначала приведу пример скрипта, который 10 раз переключит окно (ALT+TAB), а затем выложу справочные таблицы.

Set s = CreateObject(«Wscript.Shell»)

wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«
wscript.sleep 40
s.sendkeys»%«

Для указания клавиш Alt , Shift , Ctrl существуют специальные коды:
Клавиша Код
Shift +
Ctrl [color=olive]^
[/color] Alt %

Урок 15. Воспроизведение звуков

Set WMP = WScript.CreateObject(«MediaPlayer.MediaPlayer»,»WMP_»)
WMP.Open «C:\WINDOWS\Media\Chimes.wav»
WMP.AutoStart = true
WMP.Play
msgbox «Ку-ку :)»

Во второй строке укажите путь к файлу.
Msgbox не знаю зачем тут нужен, но без него не работает)

___________________———===============———___________________

Урок 16. Реестр

Для тех,кто не в курсе:
Реестр — это специализированная база данных с информацией о параметрах операционной системы и установленных программных продуктов. При этом программные продукты, согласно Microsoft, должны хранить информацию о своих настройках именно в реестре — иначе приложение просто не получит логотип «Windows Compatible»

‘С помощью реестра можно получить полную информацию о настройках ОСьки и оборудования
‘Изменить большинство настроек системы и драйверов.

Мы расмотрим базовые возможности vbs с помощью обьекта WScript.Shell

Итак, три метода : RegRead (считывание инфы из реестра), RegWrite (запись веток и параметров в реестр), RegDelete (удаление веток или параметров)
Примеры:

Dim WshShell ‘обьявляем переменную
Set WshShel l = CreateObject(«WScript.Shell») ‘Содержит доступ к функциям управления реестром

WshShell.RegWrite «HKEY_CLASSES_ROOT\.MyTest\Test», «Hello», «REG_SZ» ‘создаем в ветке HKCR раздел MyTest ,параметр Tes t со значением Hello и типом REG_SZ

sReg = WshShell.RegRead(«HKEY_CLASSES_ROOT\.MyTest\Test») ‘читаем инфу об этом параметре
MsgBox sReg ‘выводим это все в мессагу
WshShell.RegDelete(«HKEY_CLASSES_ROOT\.MyTest\Test») ‘удаляем наш параметр

Надеюсь, основы понятны. Итак, автозагрузка:

Set WshShell = CreateObject(«WScript.Shell»)
WshShell.RegWrite «HKCU\Software\Microsoft\Windows\CurrentVersion\Run\virus» , «C:\Windows\virus.vbs» ‘вот эта запись и прописывает наш вирус(C:\Windows\virus.vbs его местоположение) в ветку HKCU\Software\Microsoft\Windows\CurrentVersion\Run ,которая отвечает за автозагрузку.

Ну если коротко то все.Вообще реестр это мощное оружие у профи,но очень опасная вещица в ручках рядового юзверя=) Эксперементируйте с ним осторожно.Без знаний лучше туда вообще не лезть.

___________________———===============———___________________

Урок 17. Говорящий компьютер

Ваш компьютер можно научить общаться. Только в уроке «Послание от блокнота» компьютер печатал фразу, а сейчас он её произнесет.

CreateObject(«SAPI.SpVoice»).Speak»hello»

Замените фразу hello любой вашей фразой.

Здесь используется стандартная функция преобразования текста в речь (Пункт Речь в Панели Управления).

Фразу могут произносить женский (Мэри) и мужской (Сэм) голоса. У меня мужик, а кто у вас? :)

Программа не понимает русский язык, но вы можете поэкспериментировать со словами, например, preevet. (А какой полигон для нецензурной лексики! :))

Можно сделать бота, который будет с вами общаться. Например, вы пишете ему «Здарова», а он отвечает «preevet». И так далее. Тут главное не полениться и прочитать мои уроки заново (почитайте про формы и условия).

Фантазируйте, с этой фичей можно поприкалываться!

Основы языка JScript — написание WSH скриптов

Сегодня поговорим об очень полезном компоненте операционной системы Windows — это Windows Script Host, если быть конкретней, то о языке Jscript, на котором можно писать эти самые WSH скрипты.

Начнем мы с небольшой теории, так как мы еще не затрагивали Windows Script Host.

Что такое Windows Script Host?

Windows Script Host – сервер выполнения сценариев (скриптов) на таких языках как VBScript и JScript. WSH разработан компанией Microsoft и он является компонентом операционной системы Windows начиная с Windows 98.

Первоначально для администрирования использовались только bat-файлы, но их возможности ограничены (хотя также очень полезны!), поэтому компания Microsoft предложила такой вариант WSH. Возможности WSH-скриптов уже гораздо больше, ведь данные скрипты уже создаются на полноценных языках, таких как VBScript и JScript.

Именно о JScript мы сегодня и поговорим.

Но о VBScript мы тоже скажем пару слов.

VBScript – это скриптовой язык программирования, созданный компанией Microsoft для разработки скриптов в операционной системе Windows. Другими словами, это один из языков, которые может интерпретировать Windows Script Host. И из названия ясно, что VBScript основан на языке Visual Basic, поэтому тем, кто знаком с Visual Basic будет просто писать WSH-скрипты на этом языке программирования.

JScript – скриптовой язык программирования, с помощью которого можно создавать (писать) скрипты, которые будут интерпретироваться компонентом Windows Script Host.

С первого взгляда JScript во многом похож на JavaScript (ECMAScript), это и естественно, так как синтаксис, некоторый объекты, методы, свойства аналогичны JavaScript. Но это все же не JavaScript, а именно JScript. JavaScript (ECMAScript) ориентирован на объекты браузера, а JScript уже на компоненты операционной системы Windows. Но как мы сказали, они похожи, поэтому те, кто владеют языком программирования JavaScript с легкостью перейдут на JScript.

Возможности Windows Script Host

А теперь давайте поговорим о том, зачем нам нужно писать эти самые WSH-скрипты, т.е. об их возможностях и преимуществах:

  • Возможность взаимодействия с файловой системой (файлы, каталоги), системным реестром, ресурсами локальной сети;
  • Взаимодействие с такими продуктами как Microsoft Word, Excel и другими программами. Т.е. например, мы можем создавать excel файлы или конвертировать другие форматы в excel файлы;
  • Взаимодействие с ActiveX-технологиями, например: ActiveX Data Object (ADO) — доступ к базам данных разных форматов, Active Directory Service Interface (ADSI) — работа со службами каталогов Active Directory;
  • Наличие полноценного языка программирования, с помощью которого можно реализовывать сложные алгоритмы, которые например нельзя реализовать с помощью bat файлов.

Скрипты на JScript имеют расширение .js такое же, как и на JavaScript за исключением того, что эти скрипты обрабатывает не браузер, а Windows Script Host.

На JScript возможно даже реализация графического интерфейса через объект браузера (internet explorer), согласитесь это уже полноценная программа.

Примеры написания WSH скриптов

Перейдем к практике, так как у нас сегодня статья по основам, мы рассмотрим простые примеры написание скриптов на JScript.

Примечание! Для того чтобы попробовать примеры ниже скопируйте код любого примера в текстовый файл и сохраните с расширением .js, например, test.js.

Выводим сообщение на JScript

В WSH имеется специальный объект, на основе которого мы уже можем в дальнейшем создавать другие объекты, настраивать взаимодействие с программами, файлами и другими компонентами операционной системы.

Этим объектом является WScript. Пример его использования на Jscript:

Тем самым мы создали объект, с помощью которого мы можем получить доступ к компонентам Windows.

Например, вывести сообщение:

Работа с Excel на JScript

Теперь давайте создадим другой объект, например, Excel файл:

Как Вы понимаете, мы имеем доступ ко всем свойствам в Excel, другими словами, мы можем изменить внешний вид, задать формат ячеек и многое другое. Для примера давайте поэкспериментируем с некоторыми свойствами:

Работа с текстовым файлом и Excel на JScript

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

Для того чтобы настроить взаимодействие с файловой системой, необходимо создать объект FileSystemObject, который работает с файлами и каталогами. Вот пример небольшого скрипта, который считывает данные из текстового файла построчно и записывает их в Excel документ, причем мы все строки пронумеруем и зададим ширину столба для данных в Excel:

Пример текстового файла:

Как всегда весь код я прокомментировал, поэтому неясностей возникнуть не должно.

Я думаю для начала этого вполне достаточно, в дальнейшем мы будем разбирать задачи посложней, ведь при помощи Jscript в WSH можно очень много чего сделать, гораздо больше, чем с помощью простых bat файлов. До встречи!

Илон Маск рекомендует:  Создание java апплета для отображения географических карт
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL
Java Script VB Script