var FSO,F,s; //Объявляем переменные
var ForReading = 1; //Инициализируем константы
//Создаем объект FileSystemObject
FSO=WScript.CreateObject('Scripting.FileSystemObject');
//Создаем на диске C: текстовый файл TestFile.txt
F=FSO.CreateTextFile('C:\TestFile.txt', true);
//Записываем в файл первую строку
F.Write('Это ');
F.WriteLine('первая строка');
//Записываем в файл пустую строку
F.WriteBlankLines(1);
//Записываем в файл третью строку
F.WriteLine('Это третья строка');
//Закрываем файл
F.Close();
//Открываем файл для чтения
F=FSO.OpenTextFile('C:\TestFile.txt', ForReading);
//Пропускаем в файле две первые строки
F.SkipLine();
F.SkipLine();
s='Третья строка из файла C:\TestFile.txt:
';
//Считываем из файла третью строку
s+=F.ReadLine();
//Выводим информацию на экран
WScript.Echo(s);
/************* Конец *********************************************/
Примеры сценариев
Ниже подробно рассмотрены несколько завершенных сценариев, иллюстрирующих работу с файловой системой компьютера.
Отчет об использовании дискового пространства
Напишем сценарий DrivesReport.js, который будет создавать таблицу использования дискового пространства для дисков всех типов (съемных, жестких и сетевых), имеющихся на компьютере, в следующем формате:
Метка тома: | Общий объем, Mb: |
Используется, Mb: | Свободно, Mb: |
Для этого в сценарии вывод информации производится в текстовый файл rep.txt (переменная RepFile
), который затем открывается с помощью Блокнота (рис. 5.8):
//Создаем объект WshShell
WshShell=WScript.CreateObject('WScript.Shell');
//Запускаем Блокнот (notepad.exe) и открываем в нем файл rep.txt
WshShell.Run('notepad.exe rep.txt');
Данные об одном диске формируются в функции WriteDriveInfo (
, где в качестве параметра drive
r
ive для нужного диска. Соответствующие объекты Drive
для всех дисков, имеющихся в системе, создаются в функции LoopDrives()
:
// Функция для перебора в цикле всех устройств (дисков)
function LoopDrives() {
var Drives;
//Создаем коллекцию дисков
Drives = new Enumerator( FSO.Drives );
//Цикл по всем дискам
for(; !Drives.atEnd(); Drives.moveNext()) WriteDriveInfo(Drives.item());
}

Рис. 5.8. Сформированный отчет об использовании дискового пространства
В функции WriteDriveInfo(
сначала проверяется готовность устройства drive
— если свойство IsReady
объекта Drive
равно true
, то для этого устройства определяются общий объем (свойство TotalSize
), объем свободного пространства (свойство FreeSpace
), буква диска (свойство DriveLetter
) и метка тома (свойство FreeSpace
):
//Вычисляем общий объем диска в мегабайтах
Total = Math.round(drive.TotalSize/1048576);
//Вычисляем объем свободного пространства в мегабайтах
Free = Math.round(drive.FreeSpace/1048576);
//Вычисляем объем использованного пространства в мегабайтах
Used = Total - Free;
//Определяем букву диска
DriveLetter=drive.DriveLetter+':';
//Определяем метку тома
VolumeName=drive.VolumeName;
Строки с полученными значениями затем приводятся к нужному виду с помощью вспомогательных функций LFillStr
(выравнивание строки влево), FillStr
(выравнивание строки по центру) и записываются в выходной файл RepFile
:
RepFile.WriteLine('+---------------------------------------------------+');