Var s; //Объявление переменной
// Формирование строки
s="Лабораторная работа N 3\n"+
"Работа с файловой системой WSH\n"+
"Выполнил ст-т гр. ПК-11Д\n";
WScript.Echo (s); // Печать строки
Задания:
Создать окно вывода собственных данных студента;
Создать окно вывода сведений о полном и кратком имени сценария;
Создать два последовательных окна информации об имени приложения и о полном имени приложения;
Объединить все окна в один скрипт.
Пример 2. Занесение параметров командной строки в массив args:
Var I, n, objArgs, s, args; // Объявляем переменные
objArgs = WScript.Arguments; // Создаем объект WshArguments
// Определяем общее количество аргументов
n = objArgs.Count();
s = "Всего аргументов: "+n+"\n";
args = new Array(n);
// цикл по коллекции аргументов
for (i=0; i <= n-1; i++) {
s += objArgs(i)+"\n"; // Формируем строки с аргументами
args[i] = objArgs(i); // Записываем в массив
}
WScript.Echo(s); // Выводим сформированные строки
Задания:
Создать скрипт вывода окна с отсутствующими на занятиях;
Создать скрипт вывода окна групп на факультете;
Пример 3 Поиск в текущем каталоге файла наибольшего размера:
var FSO, Path, Fold, F, i = 0, CurSize, MaxSize = 0, MaxF, s;
FSO = WScript.CreateObject("Scripting.FileSystemObject");
// получаем доступ к текущему каталогу
Path = FSO.GetParentFolderName(WScript.ScriptFullName);
Fold = FSO.GetFolder(Path);
// Создаем коллекцию файлов
F = new Enumerator(Fold.Files);
// Цикл по всем файлам
while ( ! F.atEnd()) {
CurSize = F.item().Size; // размер текущего файла
// сравниваем размер
if (CurSize > MaxSize) {
MaxSize = CurSize; // новый максимум
MaxF = F.item(); // файл наибольшего размера
}
// Переходим к следующему файлу
F.moveNext();
i++; // кол-во просмотренных файлов
} // while
s = "В текущем каталоге "+ Fold.Name + " "+i+" файлов.\n"+
"Максимальный размер имеет "+MaxF.Name+" = "+
Math.round(MaxSize/1024) + " Кб";
WScript.echo(s);
Задания:
Создать программу нахождения файла наименьшего размера
Создать программу вывода имен файлов меньше определенного размера
Пример 4 Записать в протокол дату
var FSO = WScript.CreateObject("Scripting.FileSystemObject") ;
// Создаем текстовый файл
var F = FSO.CreateTextFile("log.txt", true);
// Записываем строку в файл
var D = new Date();
F.WriteLine("Протокол работы от :"+D.toLocaleDateString());
// Закрываем файл
F.Close();
Задания:
Создать протокол с версией WSH
Создать протокол с полным именем созданного скрипта
Пример 5 Организовать проверку правильности запуска программы
//Пример запуска программы с диалоговым окном запроса
//на JScriptvar
vbOKCancel = 1;
var vbInformation = 64;
var vbCancel = 2;
var Message = "Вы действительно хотите запустить программу Notepad?";
var Title = "Подтвердите действие";
Welcome();
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("notepad",5);
function Welcome()
{ var WSHShell = WScript.CreateObject("WScript.Shell"); var intDoIt;
intDoIt = WSHShell.Popup(Message, 0, Title, vbOKCancel + vbInformation ); if (intDoIt == vbCancel) { WScript.Quit();
}
}
Окно запуска текстового редактора Word
Окно запуска командной строки
2
Методы и свойства объекта WshShell (создаем файлы *.vbs)
Объект WshShell служит для работы с переменными окружения Windows, специальными папками, запускает другие программы, создает ярлыки и т.д. Для его использования его необходимо создать методом CreateObject.
Set WshShell = CreateObject(“WScript.Shell”)
Информация о системе
Свойство 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 |
HOMEPATH |
Каталог по умолчанию для пользователей |
|
|
X |
HOMEDRIVE |
Первый локальный диск (обычно С:) |
- |
- |
X |
PATH |
Заданные системные пути |
X |
X |
X |
PATHEXT |
Исполняемые файлы (.exe , .com и т.д.) |
X |
- |
X |
SYSTEMDRIVE |
Диск на котором находится директория с операционной системой |
- |
- |
X |
SYSTEMROOT |
Директория Windows |
- |
- |
X |
WINDIR |
Директория Windows |
X |
- |
X |
TEMP или TMP |
Папка для временных файлов |
- |
X |
X |
Объект Environment, как и все коллекции WSH, имеет свойство Count, в котором хранится число элементов коллекции, и метод Item.
Следующий пример выводит на экран некоторые системные данные
VBScript:
'создаем объект WshShell:
Set WshShell = WScript.CreateObject("WScript.Shell")
'создаем объект Environment со значением PROCESS:
Set WshProEnv = WshShell.Environment("PROCESS")
SysInfo = "Системные параметры компьютера:" + Chr(10)+ Chr(10)
SysInfo = SysInfo + "Процессоров: " + _
WshProEnv("NUMBER_OF_PROCESSORS") + Chr(10)
SysInfo = SysInfo + "Директория Windows: " + _
WshProEnv("WINDIR") + Chr(10)
SysInfo = SysInfo + "Временная папка: " + WshProEnv("TEMP") + Chr(10)
MsgBox SysInfo
Запуск приложений (создаем файлы *.vbs)
С помощью метода Run объекта WshShell мы можем запускать другие приложения.
Синтаксис:
object.Run (strCommand, [intWindowStyle], [bWaitOnReturn])
где
object - объект WshShell
strCommand - исполняемая команда
Особенностью синтаксиса данного метода является то, что при использовании всех параметров скобки ( ) опускаются.
Необязательные параметры:
intWindowStyle - стиль окна запускаемого приложения
bWaitOnReturn - может принимать значение true или false, указывающее, следует ли сценарию дожидаться окончания выполнения запущенного приложения. true - выполнение сценария приостанавливается до тех пор, пока не будет закрыто запущенное приложение. false - не дожидаться.
Значения, принимаемые параметром intWindowStyle:
Значение |
Описание |
0 |
Запуск в скрытом виде |
1 |
Обычный размер окна, если окно свернуто или развернуто на весь экран, то ему возвращается исходный вид и положение на экране |
2 |
Запуск в свернутом виде |
3 |
Развернутое на весь экран |
4 |
Запуск в обычном размере, в неактивном состоянии (без фокуса) |
8 |
Обычный размер в неактивном состоянии, но в фокусе остается запустившее приложение |
Метод Run не может вызвать приложение, если оно расположено в папке, путь к которой содержит пробелы. В этом случае путь надо заключить в тройные кавычки.
В качестве примера, с помощью метода Run запустим программу Блокнот, с загруженным вызывающим сценарием.
Dim WshShell
'Создаем объект WshShell:
Set WshShell = WScript.CreateObject("WScript.Shell")
'Вызываем Блокнот и добавляем к нему в качестве параметра
'путь исполняемого сценария:
WshShell.Run ("%windir%\notepad " & WScript.ScriptFullName)
