Чтение онлайн

ЖАНРЫ

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

for (i=0;i<=ColFiles-1;i++)

 WScript.StdOut.WriteLine(ArrS[i]); //Выводим строки на экран

/************* Конец *********************************************/

Аналогичный сценарий на языке VBScript приведен в листинге 2.37.

Листинг 2.37. Запуск дочернего консольного приложения (VBScript)

'*******************************************************************

' Имя: ExecConApp.vbs

' Язык: VbScript

' Описание:
Запуск дочернего консольного приложения

'*******************************************************************

Option Explicit

' Объявляем переменные

Dim ObjExec,WshShell,s,IsBreak,ArrS,ColStr,ColFiles,i

' Создаем объект WshShell

Set WshShell = WScript.CreateObject("WScript.Shell")

' Запускаем команду DIR

Set ObjExec=WshShell.Exec("%COMSPEC% /c dir /b")

s=""

IsBreak=False

Do While True ' Бесконечный цикл

 ' Проверяем, достигнут ли конец выходного потока команды DIR

 If (Not ObjExec.StdOut.AtEndOfStream) Then

' Считываем полностью выходной поток команды DIR

s=s+ObjExec.StdOut.ReadAll

 End If

 If IsBreak Then

Exit Do ' Выходим из цикла

 End If

 ' Проверяем, не завершилось ли выполнение DIR

 If ObjExec.Status=1 Then

IsBreak=True

 Else

WScript.Sleep 100 ' Приостанавливаем сценарий на 0,1 сек

 End If

Loop

ArrS=Split(s,vbCrLf) ' Формируем массив строк

ColFiles=UBound(ArrS) ' Количество файлов в текущем каталоге

WScript.StdOut.WriteLine "Всего файлов в текущем каталоге: " & ColFiles

For i=0 To ColFiles-1

 WScript.StdOut.WriteLine ArrS(i) ' Выводим строки на экран

Next

'************* Конец *********************************************

Доступ к специальным папкам Windows ХР

При установке Windows всегда автоматически создаются несколько специальных папок (например, папка для рабочего стола (Desktop) или папка для меню Пуск (Start)), путь к которым впоследствии может быть тем или иным способом изменен. С помощью свойства

SpecialFolders
объекта
WshShell
можно создать объект
WshSpecialFolders
, который является коллекцией, содержащей пути ко всем специальным папкам, имеющимся в системе (список названий этих папок приведен в главе 1 при описании объекта
WshSpecialFolders
).

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

Рис. 2.15.

Пути для всех специальных папок в Windows ХР

Листинг 2.38. Формирование списка всех специальных папок (JScript)

/******************************************************************/

/* Имя: SpecFold1.js */

/* Язык: JScript */

/* Описание: Вывод названий всех специальных папок Windows */

/******************************************************************/

var WshShell, WshFldrs, i, s; //Объявляем переменные

//Создаем объект WshShell

WshShell = WScript.CreateObject("Wscript.Shell");

//Создаем объект WshSpecialFolders

WshFldrs = WshShell.SpecialFolders;

s="Список всех специальных папок:\n\n";

//Перебираем все элементы коллекции WshFldrs

for (i=0;i<= WshFldrs.Count-1;i++) {

 //Формируем строки с путями к специальным папкам

 s+=WshFldrs(i)+"\n";

}

WScript.Echo(s);

/************* Конец *********************************************/

Листинr 2.39. Формирование списка всех специальных папок (VBScript)

'*****************************************************************

' Имя: SpecFold1.vbs

' Язык: VBScript

' Описание: Вывод названий всех специальных папок Windows

'*****************************************************************

Option Explicit

Dim WshShell, WshFldrs, SpecFldr, s ' Объявляем переменные

' Создаем объект WshShell

Set WshShell = WScript.CreateObject("Wscript.Shell")

' Создаем объект WshSpecialFolders

Set WshFldrs = WshShell.SpecialFolders

s="Список всех специальных папок:" & vbCrLf & vbCrLf

' Перебираем все элементы коллекции WshFldrs

For Each SpecFldr In WshFldrs

 ' Формируем строки с путями к специальным папкам

 s=s & SpecFldr & vbCrLf

Next

WScript.Echo s

'************* Конец *********************************************/

Объект

WshSpecialFolders
также позволяет получить путь к конкретно заданной специальной папке. Например, в сценарии SpecFold2.js (листинг 2.40) на экран выводятся пути к папкам рабочего стола (Desktop), избранных ссылок (Favorites) и раздела Программы (Programs) меню Пуск (Run) — рис. 2.16.

Поделиться с друзьями: