Андрей Попов - Windows Script Host для Windows 2000/XP
/* Язык: JScript                                                  */
/* Описание: Запуск дочернего консольного приложения              */
/*******************************************************************/
//Объявляем переменные
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("n"); //Формируем массив строк
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="Список всех специальных папок:nn";
//Перебираем все элементы коллекции 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.
Рис. 2.16. Пути для некоторых специальных папок
Листинг 2.40. Доступ к определенным специальным папкам (JScript)/******************************************************************/
/* РРјСЏ: SpecFold2.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Андрей Попов - Windows Script Host для Windows 2000/XP, относящееся к жанру Программное обеспечение. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


