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

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

var ObjExec,WshShell,s,IsBreak,ArrS,ColStr,ColFiles,i;

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

WshShell = WScript.CreateObject('WScript.Shell');

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

ObjExec=WshShell.Exec('%COMSPEC% /c dir /b');

s='';

IsBreak=false;

for (;;) {  //Бесконечный цикл

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

 if (!ObjExec.StdOut.AtEndOfStream)

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

  s+=ObjExec.StdOut.ReadAll();

 if (IsBreak) break; //Выходим из цикла

 if (ObjExec.Status==1)  //Проверяем, не завершилось ли выполнение DIR

  IsBreak=true;

 else WScript.Sleep(100);  //Приостанавливаем сценарий на 0,1 сек

}

ArrS=s.split(' ');  //Формируем массив строк

ColFiles=ArrS.length-1;   // Количество файлов в текущем каталоге

WScript.StdOut.WriteLine('Всего файлов в текущем каталоге: '+ColFiles);

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='Список всех специальных папок: ';

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

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

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

 s+=WshFldrs(i)+' ';

}

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату