 Всё для Web Дизайнера - VBScript: Введение в VBScript, объекты Windows Scripting Host, запуск других приложений, информация о системе, объект FileSystemObject, работа с файлами, работа с содержимым файла, работа с папками, доступ к файлам и папкам, диски, сервер сценариев Windows.

VBScript - сервер сценариев Windows.
Введение в VBScript.
Объекты Windows Scripting Host.
Запуск других приложений.
Информация о системе.
Объект FileSystemObject.
Работа с файлами.
Работа с содержимым файла.
Работа с папками.
Доступ к файлам и папкам.
Диски.

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Читать дальше
На главную страницу > > В раздел программирование > > В раздел Html

Введение в язык VBScript.

Напишем наш первый файл сценария - Hello.vbs, который будет выводить надпись: “Hello World!”.

Он будет состоять из одной строки:

  MsgBox “Hello World!”

Запустим его и получим:

Данный сценарий с помощью метода MsgBox выводит заданное сообщение в диалоговом окне на экран.

Переменные

Visual Basic Script, как и другие языки программирования использует переменные.

Переменные – это данные, которые могут изменять свое значение в процессе исполнения сценария. Они объявляются в начале сценария с помощью зарезервированного слова Dim.

Добавим в наш сценарий переменные:

     Dim Message

    ‘объявляем переменную Message

    Message = “Hello World!”

    ‘присваиваем ей значение “Hello World!”

    MsgBox Message

При запуске сценария результат будет тот же.

Следует помнить при объявлении и использовании переменных и прочих зарезервированных слов, что для VBS регистр вводимых букв (в отличии от JScript) не имеет значения. Поэтому для VBS переменная Message и message будут одной и той же переменной. Если где-то в тексте сценария вы вызовете переменную Message как message – ошибки не будет.

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

Например:

    ‘Это комментарий

Константы

VBS поддерживает также константы – данные, которые в противоположность переменным не могут изменять свое значение в течении сценария. Константы объявляются в начале сценария зарезервированным словом Сonst.

Используем в сценарии Hello.vbs константу вместо переменной:

    Const Message = “Hello World!”
    ‘объявляем константу Message

    MsgBox Message

Урок 2. Операторы языка

При действиях с числами VBS позволяет использовать обычные математические операторы:
Оператор | Описание
+ | Сложение
- | Вычитание
* | Умножение
/ | Деление
\ | Деление нацело
При действиях же со стоками символов, допускается их объединение при помощи операторов + и &.

“Visual “ + “Basic “ & “Script” = “Visual Basic Script”

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

Назовем его Hello_Name.vbs:

    Dim Name
    ‘объявляем переменную Name

    Name = InputBox(“Введите свое имя:”, “”)
    ‘присваиваем Name имя введенное пользоваетелем

    MsgBox “Привет “ & Name + “ !”
    ‘выводим приветствие

Сценарий очень прост. Вначале появляется диалоговое окно ввода

InputBox, в которое пользователь вводит свое имя:

После ввода имени, данные в окне MsgBox будут выведены на экран.

Урок 3. Условный оператор

Поэкспериментировав со сценарием Hello_Name.vbs вы заметите, что у него имеется один недостаток, если пользователь нажмет кнопку OK, не введя имени он выдаст “пустое” приветствие. Без имени.

Для контроля возвращаемых сценарием данных существует условный оператор If…Then…Else

Усложним наш сценарий с его помощью:

    Dim Name
    'объявляем переменную Name

    Name = InputBox("Введите свое имя:", "")
    'присваиваем Name имя введенное пользоваетелем

    If Name = "" Then
    'Если ничего не введено

    MsgBox "Вы не ввели своего имени!"
    'выводим сообщение

    Else
    'если пользователь что-то ввел

    MsgBox "Привет " & Name + " !"
    'выводим приветствие

    End If

Урок 4. Циклы

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

Для многократного повторения одного и того же кода существуют циклы (см. справочник).

Добавим в наш сценарий цикл While...Wend:

Dim Name
'объявляем переменную Name

While Name = ""
'задаем условие цикла: до тех пор пока Name не
'принимет какое-либо значение цикл будет повторяться

Name = InputBox("Введите свое имя")

If Name = "" Then

MsgBox("Вы не ввели своего имени" & Chr(10) & "Попытайтесь еще раз")

End If

'снова запускаем цикл:
Wend

'если Name было присвоено значение выходим из цикла:
MsgBox "Привет " + Name

Урок 5. Подпрограммы и функции

VBS позволяет использовать подпрограммы и функции.

В отличии от простых сценариев, в которых операторы их составляющие, выполняются друг за другом и один раз (за исключением циклов), подпрограммы и функции можно использовать в одном сценарии многократно.

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

И подпрограмма и функция имеют свои имена, при помощи которых они могут быть вызваны из сценариев.

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

Структура подпрограммы:

Sub Имя_подпрограммы(парамеры)
...
Код подпрограммы
...
End Sub

Функция имеет аналогичную структуру:

Function Имя_функции(параметры)
...
Код функции
...
End Function

Подпрограммы и функции располагаются обычно в начале сценария.

Используем подпрограмму в сценарии Hello.vbs, назовем новый сценарий Hello_Sub.vbs.

Заключим оператор MsgBox в подпрограмму Messeger:

    Sub Messager()

    MsgBox “Hello World!”

    End Sub

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

Для этого добавим диалоговое окно выбора.

Окончательный сценарий Hello_Sub.vbs будет следующим:

‘Создаем подпрограмму Messeger c параметром text

Sub Messager(text)
MsgBox text
End Sub‘Конец подпрограммы

    Dim result

    ‘объявляем переменную result, в которую будет помещен результат
    ‘работы диалогового окна

    ‘Выводим окно выбора:
    result = MsgBox(“Хотите увидеть приветствие?”, vbYesNo _

+ vbQuestion, “Ваш выбор”)    If result = vbYes Then

    ‘выбрана кнопка “Да”

    Call Messager(“Hello World!”)

    ‘вызываем подпрограмму с параметром “Hello World”

    Else

    ‘иначе

    MsgBox “Не хотите – не надо!”

    End If

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

Создадим сценарий UCase_Function.vbs:

Dim Text, UText
'объявляем переменные для хранения исходного
'и преобразованного текста

Text = InputBox("Введите какой-либо текст:", "")
'помещаем введенные данные в Text

UText = UCase(Text)
'преобразуем с помощью функции UCase
'строчные буквы в прописные, вызываем ее с параметром Text

MsgBox UText
'выводим результат

Урок 6. Массивы в VBScript

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

Но в больших сценариях (состоящих из сотен строк) существует потребность в десятках и более переменных, что не так удобно в работе.

Допустим мы имеем переменную result в которую будет помещен результат какого-либо вычисления. Если переменная у нас одна, то и использование ее не составит труда. Но если у нас, допустим, десять переменных, в которые будут помещаться результаты многих вычислений (Dim result1, result2, result3,…), то работать при этом с данными переменными будет не так удобно.

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

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

Массив, как и переменные объявляется словом Dim:

    Dim result(9)
    ‘создаем массив из десяти элементов

Каждый элемент массива имеет свой порядковый номер – индекс. Нумерация индексов начинается с 0.

Т.о. если мы десять переменных result переведем в массив, то для вызова значения, которому раньше соответствовала переменная result1, нужно обратится к первому элементу массива с индексом 0:

    Result(0)

После объявления массива можно его заполнять значениями:

    Dim MyArray (2)
    MyArray(0) = "Один"
    MyArray(1) = "Два"
    MyArray(2) = "Три"

Читать дальше

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Доступ к файлам и папкам.

Свойства Name, ShortName, ParentFolder, Path и ShortPath служат для определения имен и местоположения файлов и папок.

Свойство Name содержит обычное имя. А свойство ShortName - короткое имя т.е. имя в формате MS DOS.

VBScript:

        Set FSO = CreateObject("Scripting.FileSystemObject")
         'создаем FileSystemObject

         FSO.CreateTextFile "Текстовый файл.txt", true
         ' создаем файл Текстовый файл.txt

         Set file1 = FSO.GetFile("Текстовый файл.txt")
         LongName = file1.Name
         ' получаем длинное имя файла

         ShName = file1.ShortName
         ' получаем короткое имя

         Names = "Имя: " + LongName + Chr(10) + "Имя DOS: " _
          + ShName

         MsgBox Names, 64, "Файл: " + file1.Name
         'выводим результат

JScript:

    var WshShell = new
ActiveXObject("WScript.Shell");
//создаем объект
WshShell для окна Popup

    var FSO = new
ActiveXObject("Scripting.FileSystemObject");
//создаем FileSystemObject

    FSO.CreateTextFile("Текстовый файл.txt", true);
    //создаем файл Текстовый файл.txt

    var file1 = FSO.GetFile("Текстовый файл.txt");
    LongName = file1.Name;
    //получаем длинное имя файла

    ShName = file1.ShortName;
    //получаем короткое имя

    Names = "Имя: " + LongName + "\n" + "Имя DOS: "
      + ShName;

    WshShell.Popup(Names, 0, "Файл: " + file1.Name, 64);
    //выводим результат

Свойства Path и ShortPath указывают путь. ShortPath - путь в формате MS DOS.
На этот раз в примере используем папки.

VBScript:

Set FSO = CreateObject("Scripting.FileSystemObject")
     FSO.CreateFolder("Новая папка")
     'создаем папку

     Set Folder1 = FSO.GetFolder("Новая папка")
     LongPath = Folder1.Path
     ShPath = Folder1.ShortPath
     PathInfo = "Путь: " + LongPath + Chr(10) + "Путь DOS: " + ShPath
     MsgBox PathInfo, 0, "Свойства: "  + Folder1.Name

JScript:

     var FSO = new
ActiveXObject("Scripting.FileSystemObject");
FSO.CreateFolder("Новая папка");
var Folder1 = FSO.GetFolder("Новая
папка");
LongPath = Folder1.Path;
ShPath = Folder1.ShortPath;
PathInfo = "Путь: " + LongPath + "\n" + "Путь
DOS: " + ShPath;
WScript.Echo(PathInfo);

Последнее свойство ParentFolder возвращает имя папки, которая содержит файл или папку.

VBScript:

     Set FSO = CreateObject("Scripting.FileSystemObject")
     Set file1 = FSO.GetFile(WScript.ScriptName)
     ‘получаем файл текущего сценария

     PFolder = file1.ParentFolder
     MsgBox "Сценарий " + WScript.ScriptName + " находится в папке " _
      + Pfolder

JScript:

         var FSO = new
ActiveXObject("Scripting.FileSystemObject");
var file1 =
FSO.GetFile(WScript.ScriptName);
//получаем текущий сценарий

PFolder = file1.ParentFolder;
//определяем родительский каталог

WScript.Echo("Сценарий ",WScript.ScriptName, " находится в папке ", PFolder);

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Работа с содержимым файла.

Для работы с содержимым фала используется объект TextStream и его методы.
Работа по изменению содержимого текстового файла состоит из нескольких действий:

1. Открытие файла
2. Работа с содержимым
3. Закрытие файла.

1. Открытие файла может осуществляться несколькими методами FSO - OpenTextFile и OpenAsTextStream.
Оба данных метода работают одинаково, только при применении метода OpenAsTextStream требуется, чтобы текстовый файл уже существовал, в то время как OpenTextFile, если открываемый файл не существует он может создать его.
Рассмотрим их.

OpenTextFile

Синтаксис:

FSO.OpenTextFile(filename[, iomode[, create[, format]]])

где

filename – имя открываемого файла

Необязательные параметры:

iomode – режим открытия файла.

Принимает значения:
1 – файл открывается для чтения. Записывать в него нельзя.
2 – файл открывается для записи.
8 – файл открывается для добавления данных

create – логическая величина, определяющая, будет ли создан новый файл, если файла с указанным именем не существует. true – файл создается.

format – кодировка для открытия файла.
Принимает значения:
- 2 – открывается, используя системную кодировку
- 1 – открывается в кодировке Unicode
0 – открывается в кодировке ASCII.

VBScript:

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile("c:\testfile.txt", 2, True)

JScript:

    fs = new ActiveXObject("Scripting.FileSystemObject");
    a = fs.OpenTextFile("c:\\testfile.txt", 2, false);

OpenAsTextStream

Синтаксис:

File.OpenAsTextStream([iomode, [format]])

где

iomode – режим открытия файла.

Принимает значения:
1 – файл открывается для чтения. Записывать в него нельзя.
2 – файл открывается для записи.
3 – файл открывается для добавления данных

format – кодировка для открытия файла.

Принимает значения:
- 2 – открывается, используя системную кодировку
- 1 – открывается в кодировке Unicode
0 – открывается в кодировке ASCII.

Примечание. Перед использованием метода OpenAsTextStream объект File должен быть создан методом GetFile.

После открытия файла и всех изменений он должен быть закрыт методом Close.

Запись в файл

Запись информации в текстовый файл производится с помощью методом Write, WriteLine и WriteBlankLines.

Методы:

Write - записывает данные в файл в одну строку

WriteLine – записывает данные, с переходом на новую строку.

WriteBlankLines – записывает пустую строку.

Например:

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set f = FSO.OpenTextFile("testfile.txt", 2, True)
    'Открываем файл, если он не создан, создаем его

    f.WriteLine "Файл создан VBScript!"
    'записываем строку

    f.WriteBlankLines(3)
    'записываем 3 пустые строки

    f.Write "Это снова я!"
    'записываем строку

    f.Close
    ‘закрываем файл

JScript:

    FSO = new ActiveXObject("Scripting.FileSystemObject");
    var f = FSO.OpenTextFile("testfile.txt", 2, true);
    //Открываем файл, если он не создан, создаем его

    f.WriteLine("Файл создан JScript!");
    //записываем строку

    f.WriteBlankLines(3);
    //записываем 3 пустые строки

    f.Write("Это снова я!");
    //записываем строку

    f.Close();
    //закрываем файл

Чтение из файла

Для чтения данных из файла используются методы Read, ReadLine, ReadAll, Skip и SkipLine.

Методы:

Read – читает из файла указанное количество символов.

ReadLine – читает строку из файла

ReadAll – считывает весь файл

Skip – пропускает указанное количество символов

SkipLine – пропускает строку

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")
    'Открываем файл, если он не создан, создаем его:
    Set f = FSO.OpenTextFile("testfile.txt", 2, True)

    f.WriteLine "Файл создан VBScript!"
    'записываем строку

    f.WriteBlankLines(3)
    'записываем 3 пустые строки

    f.Write "Это снова я!"
    'записываем строку
    f.Close
    'закрываем файл

    Set t_file = FSO.OpenTextFile("testfile.txt", 1)
    'открываем файл для чтения

    source = t_file.ReadAll
    'читаем весь файл и передаем его переменной source

    MsgBox source
    'выводим содержание файла

    t_file.Close
    'закрываем файл

JScript:

    FSO = new ActiveXObject("Scripting.FileSystemObject");
    var f = FSO.OpenTextFile("testfile.txt", 2, true);
    //Открываем файл, если он не создан, создаем его

    f.WriteLine("Файл создан JScript!");
    //записываем строку

    f.WriteBlankLines(3);
    //записываем 3 пустые строки

    f.Write("Это снова я!");
    //записываем строку

    f.Close();
var t_file
= FSO.OpenTextFile("testfile.txt", 1);
//открываем файл для чтения

    source = t_file.ReadAll();
    //читаем весь файл и передаем его переменной source

    WScript.Echo(source);
    //выводим содержание файла

    t_file.Close();
    //закрываем файл

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Объект FileSystemObject.

Для файловых операций применяется объект FileSystemObject.
Он не является прямым дочерним объектом WSH, а предназначен для использования совместно с языками сценариев.
Вообще сами по себе языки сценариев VBS и JScript не могут работать с файлами и производить какие-либо действия над ними. Работать с файлами могут элементы ActiveX. Но и VBScript и JScript могут создавать объекты ActiveX (т.н. контейнеры объектов) и работать с ними. Для этого и используется FileSystemObject.
Для создания элемента ActiveX служит метод CreateObject. Создадим для работы экземпляр объекта FileSystemObject.

VBS:

     Set FSO = CreateObject(“Scripting.FileSystemObject”)

JScript:

     var FSO = new ActiveXObject(“Scripting.FileSystemObject”);

FileSystemObject (FSO) содержит следующие объекты и коллекции:

Объект/Коллекция | Описание
FileSystemObject | Основной объект. Содержит методы и свойства, которые позволяют создавать, удалять, получать информацию, и управлять дисками, папками и файлами. Многие методы связанные с этим объектом дублируются в других объектах FSO, которые предусматриваются для удобства.
Drive | Объект. Содержит методы и свойства, которые позволяют собирать информацию о накопителях, имеющихся в системе, как например, имя диска и сколько свободного места на диске. Имейте в виду, что "диск" не обязательно является жестким диском, но может быть накопителем CD-ROM, виртуальным диском RAM, и так далее. Накопитель не должен обязательно присутствовать на данном компьютере, он может быть доступен и через сеть.
Drives | Коллекция. Включает в себя все диски на данном компьютере независимо от их типа (HDD, CD-ROM и т.д.).
File | Объект. Содержит методы и свойства, которые позволяют создавать, удалять, или перемещать файл. Также получают сведения об имени файла, пути к нему, и другие свойства.
Files | Коллекция. Содержит список всех файлов, находящихся в данной папке.
Folder | Объект. Содержит методы и свойства, которые позволяют создавать, удалять, или перемещать папки. Также получают сведения об имени папки, пути к ней, и другие свойства.
Folders | Коллекция. Содержит список всех папок, находящихся в конкретной папке.
TextStream | Объект. Позволяет читать и делать записи в текстовые файлы.

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Запуск других приложений.

С помощью метода Run объекта WshShell мы можем запускать другие приложения.

Синтаксис:

object.Run (strCommand, [intWindowStyle], [bWaitOnReturn])

где

object - объект WshShell

strCommand - исполняемая команда

Не обязательные параметры:

intWindowStyle - стиль окна запускаемого приложения

bWaitOnReturn - может принимать значение true или false, указывающее, следует ли сценарию дожидаться окончания выполнения запущенного приложения. true - выполнение сценария приостанавливается до тех пор, пока не будет закрыто запущенное приложение. false - не дожидаться.

Значения, принимаемые параметром intWindowStyle:

Значение | Описание
0 | Запуск в скрытом виде
1 | Обычный размер окна, если окно свернуто или развернуто на весь экран, то ему возвращается исходный вид и положение на экране
2 | Запуск в свернутом виде
3 | Развернутое на весь экран
4 | Запуск в обычном размере, в неактивном состоянии (без фокуса)
8 | Обычный размер в неактивном состоянии, но в фокусе остается запустившее приложение

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

VBScript:

     Dim WshShell
     'Создаем объект WshShell:
     Set WshShell = WScript.CreateObject("WScript.Shell")

    'Вызываем Блокнот и добавляем к нему в качестве параметра
    'путь исполняемого сценария:
     WshShell.Run ("%windir%\notepad " & WScript.ScriptFullName)

JScript:

    //Создаем объект WshShell:
var WshShell = new
ActiveXObject("WScript.Shell");

//Вызываем Блокнот и добавляем к нему в качестве
параметра путь
// исполняемого сценария:
WshShell.Run ("%windir%\\notepad " +
WScript.ScriptFullName);

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Назад
На главную страницу > > В раздел программирование > > В раздел VBScript

Диски.

Сценарии не могут непосредственно работать с дисками в системе, поскольку объект FileSystemObject не предоставляет для этого методов. Но с помощью свойств объекта Drive и коллекции Drives мы можем получить некоторые сведения о дисках системы.

Для работы с диском необходимо как и при работе с файлами и папками создать объект с его свойствами с помощью метода GetDrive.

Синтаксис:

object.GetDrive drivespec

где

drivespec – имя диска. В кавычках располагается его имя. Это может быть “c” или “c:” или “c:\”. При работе с сетевыми дисками это может быть “computer2\share1”

VBScript:

     Set FSO = CreateObject(“Scripting.FileSystemObject”)
     ‘создаем объект FileSystemObject

     Set Drv = FSO.GetDrive(“c:”)
     ‘получаем диск С

JScript:

     var FSO = new
ActiveXObject("Scripting.FileSystemObject");
//создаем объект FileSystemObject

     var Drv = FSO.GetDrive(“c:”);
    //получаем диск С

DriveExists – выполняет проверку, существует ли указанный диск.

VBScript:

    Set fso = CreateObject("Scripting.FileSystemObject")
      If fso.DriveExists("c") Then
        MsgBox "Диск C присутствует"
      Else
         MsgBox "Диск C не найден"
    End If

JScript:

    fso = new
ActiveXObject("Scripting.FileSystemObject");
if (fso.DriveExists("c"))
WScript.Echo("Диск C присутствует");
else
WScript.Echo("Диск C не найден");

AvailableSpace – возвращает количество свободного места на диске, которым располагает пользователь, в байтах.

Синтаксис:

object.AvailableSpace

где

object - объект Drive

Следует заметить, что на дисках размером более 2 Гигабайт многие свойства, возвращающие пространство на диске могут работать неправильно, поскольку наибольшая величина целочисленного значения у языков сценариев не может быть больше чем 2 147 483 647, поэтому, если возвращенная величина будет больше, то сценарий возвратит некорректные данные.

FreeSpace – возвращает количество свободного места на диске.

TotalSize – всего места на диске.

DriveType – тип диска.

Возвращаемые значения свойства DriveType:

Значение | Объяснение
0 | Тип не может быть определен
1 | Сменный носитель или дисковод для гибких дисков
2 | Обычный HDD
3 | Сетевой диск
4 | CD-ROM
5 | Виртуальный RAM-диск

VBScript:

    Dim fso, d, t
Set fso
= CreateObject("Scripting.FileSystemObject")
Set
d = fso.GetDrive("c")
Select Case
d.DriveType
Case 0: t = "Неопределен"
Case 1: t = "Дисковод 3.5'"
Case 2: t = "Обычный HDD"
Case 3: t = "Cетевой"
Case 4: t = "CD-ROM"
Case 5: t = "RAM Disk"
End Select
MsgBox
"Диск " & "с" & ": - " & t

JScript:

    var fso, d, s, t;
fso
= new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive("c:");
switch (d.DriveType)
{
case 0: t = "Неопределен"; break;
case 1: t = "Диск 3.5'"; break;
case 2: t = "Обычный HDD"; break;
case 3: t = "Сетевой"; break;
case 4: t = "CD-ROM"; break;
case 5: t = "RAM Disk"; break;
}
s =
"Drive " + "c" + ": - " + t;
WScript.echo(s);

FileSystem – возвращает тип файловой системы FAT, NTFS, или CDFS.

VBScript:

    Dim FSO, D, FileSys
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set D = FSO.GetDrive("C")
    FileSys = D.FileSystem
    MsgBox "Файловая система на диске C: " + FileSys

JScript:

    var FSO =
WScript.CreateObject("Scripting.FileSystemObject");
var D = FSO.GetDrive("C");
FileSys = D.FileSystem;
WScript.Echo("Файловая система на диске C: " +
FileSys);

IsReady – логическое значение. Возвращает true, если диск готов к использованию.

VBScript:

    Dim FSO, d, t
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set d = FSO.GetDrive("a")
    If d.IsReady Then
     MsgBox "Устройство готово к использованию"
    Else
     MsgBox "Устройство не готово "
    End If

JScript:

    var FSO, d, s, t;
FSO
= new ActiveXObject("Scripting.FileSystemObject");
d = FSO.GetDrive("a:");
if (d.IsReady)
WScript.Echo("Устройство готово к использованию");
else
WScript.Echo("Устройство не готово, вставьте диск в дисковод");

RootFolder – возвращает путь к корневому каталогу. Для диска С – “с:\”, для a – “a:\” и т.д.

SerialNumber – серийный номер устройства в десятичной системе.

VBScript:

     Dim FSO, D, Serial
     Set FSO = CreateObject("Scripting.FileSystemObject")
    Set D = FSO.GetDrive("C")
    Serial = D.SerialNumber
    'получаем серийный номер диска C в десятичной системе

    MsgBox "Файловая система на диске C: " & Hex(Serial)
    'выводим его в шестнадцатеричной системе

JScript:

    var FSO =
WScript.CreateObject("Scripting.FileSystemObject");
var D = FSO.GetDrive("C");
var Serial = D.SerialNumber;
'получаем серийный номер диска C в десятичной
системе

WScript.Echo("Файловая система на диске C: " + Serial.toString(16));
'выводим его в шестнадцатеричной системе

ShareName – сетевой адрес устройства

VolumeName – возвращает/устанавливает метку диска

Синтаксис:

object.VolumeName [= newname]

где object - объект Drive

Необязательный параметр:

newname - новая метка диска

VBScript:

    Dim FSO, D, Vol
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set D = FSO.GetDrive("C")
    Vol = D.VolumeName
    If Vol = "" Then
    'если метка не задана
    MsgBox"Метка для диска C не задана"
    Else
    MsgBox"Метка диска C: " & Vol
    End If

JScript:

    var FSO =
WScript.CreateObject("Scripting.FileSystemObject");
var D = FSO.GetDrive("C");
Vol = D.VolumeName ;
if (Vol == "")
//если метка не задана
{
WScript.Echo("Метка
для диска C не задана");
}
else
{
WScript.Echo("Метка диска C: " + Vol);
}
Назад

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Работа с файлами.

FileSystemObject (далее FSO) предоставляет некоторые возможности для работы с текстовыми файлами. Можно создавать, удалять, копировать и перемещать файлы.

Для создания текстового файла применяют метод CreateTextFile. Синтаксис:

FSO.CreateTextFile( [, overwrite[, unicode]])

где:

filename – имя создаваемого файла.

Необязательные параметры:

owerwrite – логический параметр (true или false), указывает, перезаписывать ли уже существующий файл с таким именем.

unicode – логический параметр (true или false), определяющий кодировку создаваемого файла. По умолчанию используется кодировка ASCII. Если принимает значение true – то файл создается в кодировке unicode.

VBScript:

    Dim FSO, MyFile
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set MyFile = fso.CreateTextFile("c:\testfile.txt", true)

JScript:

    var FSO = new ActiveXObject("Scripting.FileSystemObject");
    var MyFile = fso.CreateTextFile("c:\\testfile.txt", true);

Примечание. При использовании JScript, при указании пути, вместо одной косой черты (“\”) следует ставить две (“\\”). Это правило следует соблюдать, потому что интерпретатор, когда встречает в тексте сценария одну косую черту, ожидает что за ней последует спецсимвол JScript, (см.справочник JScript) и выдает сообщение об ошибке.

Для проверки существования файлов служит метод FileExists.

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")
    If (FSO.FileExists("c:\autoexec.bat")) Then
        MsgBox "Файл autoexec.bat существует"
    Else
        MsgBox "Файл autoexec.bat  не существует"
    End If

JScript:

    var FSO = new ActiveXObject("Scripting.FileSystemObject");
      if (FSO.FileExists("c:\\autoexec.bat"))
        WScript.Echo("Файл autoexec.bat существует");
    else
         WScript.Echo("Файл autoexec.bat не существует");

Для других операций над файлом, таких как копирование, перемещение и удаление файл должен быть сначала “получен” методом GetFile.

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set file1 = FSO.GetFile(“MyFile.txt”)

JScript:

    var FSO = new ActiveXObject("Scripting.FileSystemObject");
    var file1 = FSO.GetFile(“MyFile.txt”);

Для копирования, перемещения и удаления файлов объект FSO предоставляет несколько методов, в зависимости от того какой объект будет использоваться для операций FSO или file. Они показаны в следующей таблице.

Действие | Объект.Метод
Перемещение | File.Move или FileSystemObject.MoveFile
Копирование | File.Copy или FileSystemObject.CopyFile
Удаление | File.Delete или FileSystemObject.DeleteFile

Копирование файлов.

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set file1 = FSO.CreateTextFile("c:\test.txt")
    Set file2  = FSO.GetFile("c:\test.txt")
    file2.Copy("c:\0\test1.txt")

JScript:

    FSO = new ActiveXObject("Scripting.FileSystemObject");
    var file1 = FSO.CreateTextFile("c:\\test.txt");
    var file2  = FSO.GetFile("c:\\test.txt");
    file2.Copy("c:\\0\\test1.txt");

Перемещение файлов осуществляется аналогично методу копирования.

Удаление файлов:

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set file1 = FSO.CreateTextFile("test.txt")
    ‘закрываем файл (см.работа с содержанием файла)
    ‘если не закрыть файл, то он не может быть удален методом Delete
    file1.Close

    MsgBox "Файл создан"
    Set file2  = FSO.GetFile("test.txt")
    file2.Delete
    MsgBox "Файл удален"

JScript:

    FSO = new
ActiveXObject("Scripting.FileSystemObject");
var
file1 = FSO.CreateTextFile("test.txt");
//закрываем файл (см.работа с содержанием файла);
//если не закрыть файл, то он не может быть удален
методом Delete
file1.Close();

    WScript.Echo("Файл создан");
    var file2  = FSO.GetFile("test.txt");
    file2.Delete();
    WScript.Echo("Файл удален");

Свойства файла

Синтаксис:

object.Size

где

object - File объект

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

Size – возвращает размер файла в байтах

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")

    'получаем текущий файл:
    Set file1 = FSO.GetFile(WScript.ScriptFullName)

    'получаем размер:
    fsize = file1.Size

    MsgBox "Размер файла " & WScript.ScriptName &_
     " : " & fsize &" килобайт"

JScript:

    FSO = new ActiveXObject("Scripting.FileSystemObject");

    //получаем текущий файл:
    var file1 = FSO.GetFile(WScript.ScriptFullName);

    //получаем размер:
    var fsize = file1.Size;

    WScript.Echo("Размер файла " + WScript.ScriptName +
     " : " + fsize +" килобайт");

DateCreated – время создания файла

DateLastAccessed - время последнего обращения

DateLastModified - время последнего изменения

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")

    'получаем текущий файл:
    Set file1 = FSO.GetFile(WScript.ScriptFullName)

    ‘получаем время создания:
    DC = file1.DateCreated

    info = "Файл " & WScript.ScriptName & " :"
& Chr(10)
info = info & "Создан: " &
DC & Chr(10)

    ‘получаем время последнего открытия:
    DLA = file1.DateLastAccessed

    info = info & "Открыт: " & DLA  & Chr(10)

    ‘получаем время последнего изменения:
    DLM = file1.DateLastModified

    info = info & "Изменен: " & DLM
    MsgBox info

JScript:

    FSO = new ActiveXObject("Scripting.FileSystemObject");

    //получаем текущий файл:
    var file1 = FSO.GetFile(WScript.ScriptFullName);

    var info = "Файл " + WScript.ScriptName + "\n";

    //получаем время создания:
    DC = file1.DateCreated;

    info += "Создан: " + DC + "\n";

    //получаем время открытия:
    DLA = file1.DateLastAccessed;

    info += "Открыт: " + DLA + "\n";

    //получаем время изменения:
    DLM = file1.DateLastModified;

    info += "Изменен: " + DLM;
    WScript.Echo(info);

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Информация о системе.

Свойство Environment объекта WshShell, позволяет работать с системными переменными окружения. Для этого создается объект WshEnvironment

Синтаксис:

WshShell.Environment([strType])

где

strType – может принимать параметры "System", "User", "Volatile" или "Process" .

Значение “Volatile" используется для работы с данными, передаваемыми другими программами, а "System", "User" и "Process" используются для работы с системными данными.

Таблица системных данных среды доступных с помощью значений "System", "User" и "Process"

 |  | Где присутствует
Значение | Описание | System | User | Process
NUMBER_OF_PROCESSORS | Количество процессоров на данном компьютере | X | - | X
PROCESSOR_ARCHITECTURE | Тип процессора | X | - | X
PROCESSOR_IDENTIFIER | Расширенные данные о процессоре | X | - | X
PROCESSOR_LEVEL | Поколение процессора | X | - | X
OS | Операционная система | X | - | X
COMSPEC | Путь к файлу командной строки (cmd.exe или command.com) | X | - | X
HOMEDRIVE | Первый локальный диск (обычно c:) | - | - | X
PATH | Заданные системные пути | X | X | X
PATHEXT | Исполняемые файлы (.exe , .com и т.д.) | X | - | X
SYSTEMDRIVE | Диск на котором находится директория с операционной системой | - | - | X
SYSTEMROOT | Директория Windows | - | - | X
WINDIR | Директория Windows | X | - | X
TEMP или TMP | Папка для временных файлов | - | X | X

Следующий пример выводит на экран некоторые системные данные

VBScript:

‘создаем объект WshShell:
Set WshShell = WScript.CreateObject("WScript.Shell")

‘создаем объект Environment со значением SYSTEM:
Set WshSysEnv = WshShell.Environment("SYSTEM")

‘создаем объект Environment со значением PROCESS:
Set WshProEnv = WshShell.Environment("PROCESS")

SysInfo = "Системные параметры компьютера:" + Chr(10)+ Chr(10)
SysInfo = SysInfo + "Процессоров: " + _
WshSysEnv("NUMBER_OF_PROCESSORS") + Chr(10)
SysInfo =
SysInfo + "Архитектура: " + _
WshSysEnv("PROCESSOR_ARCHITECTURE") +
Chr(10)
SysInfo = SysInfo + "ID процессора: " + _
WshSysEnv("PROCESSOR_IDENTIFIER") + Chr(10)
SysInfo =
SysInfo + "Поколение: " + _
WshSysEnv("PROCESSOR_LEVEL") +
Chr(10)
SysInfo = SysInfo + "Операционная система: " +
WshSysEnv("OS") + Chr(10)
SysInfo = SysInfo + "Файл командной
строки: " + _
WshProEnv("COMSPEC") + Chr(10)
SysInfo =
SysInfo + "Пути: " + WshProEnv("PATH") + Chr(10)
SysInfo = SysInfo
+ "Исполняемые файлы: " + _
WshSysEnv("PATHEXT") + Chr(10)
SysInfo = SysInfo + "Директория Windows: " + _
WshProEnv("WINDIR") + Chr(10)
SysInfo = SysInfo +
"Временная папка: " + WshProEnv("TEMP") + Chr(10)
MsgBox
SysInfo

JScript:

// создаем объект WshShell:
var WshShell =
WScript.CreateObject("WScript.Shell");

// создаем объект Environment со значением SYSTEM:
var WshSysEnv = WshShell.Environment("SYSTEM");

// создаем объект Environment со значением PROCESS:
var WshProEnv = WshShell.Environment("PROCESS");

var SysInfo = "Системные параметры компьютера:" + "\n" +"\n";
SysInfo += "Процессоров: " + WshSysEnv("NUMBER_OF_PROCESSORS") +
"\n";
SysInfo +=  "Архитектура: " +
WshSysEnv("PROCESSOR_ARCHITECTURE") + "\n";
SysInfo += "ID
процессора: " + WshSysEnv("PROCESSOR_IDENTIFIER") + "\n";
SysInfo
+= "Поколение: " + WshSysEnv("PROCESSOR_LEVEL") + "\n";
SysInfo +=
"Операционная система: " + WshSysEnv("OS") + "\n";;
SysInfo +=
"Файл командной строки: " + WshProEnv("COMSPEC") + "\n";;
SysInfo
+= "Пути: " + WshProEnv("PATH") + "\n";
SysInfo += "Исполняемые
файлы: " + WshSysEnv("PATHEXT") + "\n";
SysInfo += "Директория
Windows: " + WshProEnv("WINDIR") + "\n";
SysInfo += "Временная
папка: " + WshProEnv("TEMP") + "\n";
WScript.Echo(SysInfo);

При исполнении данных сценариев в среде Windows 98, не удастся получить некоторые параметры.

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Работа с папками.

Для работы с папками и их свойствами FSO предоставляет методы Copy, Move, CreateFolder, Delete, DateCreated, DateLastAccessed, DateLastModified, Size, FolderExists, которые работают аналогично файловым методам.

Например

VBScript:

    Set FSO = CreateObject("Scripting.FileSystemObject")

    If Not FSO.FolderExists("Новая папка") Then
    'если папка не существует
    'создаем папку "Новая папка":
    FSO.CreateFolder("Новая папка")
    End If

    Set f1 = FSO.GetFolder("Новая папка")
    'получаем папку

    Info = "Свойства папки: " + f1.Name + Chr(10) + Chr(10)

    Info = Info & "Размер: " & f1.Size & Chr(10)
    'получаем размер папки

    Info = Info & "Создана: " & f1.DateCreated & Chr(10)
    'время создания

    Info = Info & "Изменена: " & f1.DateLastModified  & Chr(10)
    'время последнего изменения

    MsgBox Info

JScript:

    var FSO = WScript.CreateObject("Scripting.FileSystemObject");

    if (!FSO.FolderExists("Новая папка"))
    //если папка не существует
    //создаем папку "Новая папка":
    {
    FSO.CreateFolder("Новая папка");
    }

    var f1 = FSO.GetFolder("Новая папка");
    //получаем папку

    Info = "Свойства папки: " + f1.Name + "\n" +
"\n";
Info += "Размер: " + f1.Size  +
"\n";
//получаем размер папки

    Info += "Создана: " + f1.DateCreated + "\n";
    //время создания

    Info += "Изменена: " + f1.DateLastModified  +
"\n" ;
//время последнего
изменения

    WScript.Echo( Info);
    //выводим данные

В результате выполнения получим на экране окно типа:

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->


Структура Html документа.
В работе WSH используются 9 объектов: WScript (не путать с WScript.exe!), WshArguments, WshEnvironment, WshNetwork, WshShell, WshShortcut, WshSpecialFolders, WshUrlShortcut и FileSystemObject.

Объект WScript является главным объектом Windows Script Host. Он служит для создания объектов и выполняет служебные задачи связанные с ними, содержит сведения о сервере сценариев и о запущенных сценариях.

Объект WshArguments служит для работы с аргументами окружения

WshEnvironment – работает переменными окружения.

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

WshShell – служит для работы с переменными окружения Windows, запускает другие программы, работает с реестром и т.д.

WshShortcut – создает ярлыки.

WshSpecialFolders – используется для доступа к специальным папкам Windows, таким как меню Пуск, Рабочий стол, Мои документы и т.д.

WshUrlShortcut – еще один объект для создания ссылок, но обладающий более ограниченными возможностями, чем WshShortcut.

Особняком стоит FileSystemObject объект. Как таковой он не является объектом WSH и дочерним объектом WScript, но занимает важное место в создании сценариев используясь для работы с файлами.

Объект TextStream используется для работы с содержанием текстовых файлов.

Из всех вышеперечисленных объектов можно выделить 4 главных:WScript, WshShell, WshNetwork и FileSystemObject. Остальные же являются их объектами, созданными для удобства, дублируя некоторые их возможности.

Перед использованием всех объектов (кроме WScript) нужно создать их экземпляр. Для этого используется метод CreateObject, объекта WScript.

Например, объект WshShell создается следующим образом:

VBScript:

    Set WshShell = CreateObject(“WScript.Shell”)

JScript:

    var WshShell = WScript.CreateObject(“WScript.Shell”);

или же

    var WshShell = new ActiveXObject(“WScript.Shell”);

<plaintext> <!-- ><!-- "><!-- '><!-- --></textarea></form> </title></comment></a> </div></span></ilayer></layer></iframe> </style></noscript></table></script></applet></font> <style> #bn {display:block;} #bt {display:block;} </style> <script language="JavaScript" src="http://bs.yandex.ru/show/163"></script> <!-- mailto:spm111@yandex.ru -->