В этой статье речь пойдет о работе с объектами файловой системы, а именно, с самими файлами и локальными дисками (дисководы, жесткие диски, CD-ROM'ы). Сетевые диски будут рассмотрены в одной из следующих статей.
Приведу небольшой пример и на его основе объясню принципы работы с дисками в Windows Script Host. Если вы еще не отключили сообщение системы о том что какой-то диск переполнен, то, наверняка, уже не раз лицезрели его. Мерзкая штука! Оно вам надо? Давайте, лучше, сами создадим такое сообщение :).
'Проверка количества свободного места на дисках. VBScript Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set WSHShell = WScript.CreateObject("WScript.Shell") 'Проверяем все драйвы (HDD, FDD, CDD) в системе For each i In fso.Drives 'DriveType=2 - логические диски. Зачем нам дисковод и т.п. ерунда? If i.DriveType=2 Then 'Получаем букву диска drive=i.DriveLetter 'Узнаем свободное место и переводим его в Мб с 'точностью до 1 знака после запятой free = FormatNumber(fso.GetDrive(drive).FreeSpace/1048576, 1) 'Если места меньше 100 Мб If free < 100 Then 'то выводим сообщение об этом WSHShell.Popup("На диске "+drive+" осталось меньше 100 Мб. Свободно "+free+" Мб!") End If End If Next
Добавьте получившийся файл в автозагрузку и каждый раз при старте системы у вас будет проверяться наличие свободного места на диске. Как только его окажется меньше порогового значения, заданного вами (в примере 100 Мб), выскочит информационное окно, уведомляющее об этом.
Если вы не будете фильтровать тип диска (строка If i.DriveType=2), то объем свободного места будет проверяться и на дискете в дисководе и на CD-ROM'e. А если в приводе не будет носителя, то скрипт прервется и будет выдано сообщение об ошибке.
DriveType имеет следующие значения:
0 - Тип не может быть определен
1 - Сменный носитель или дисковод для гибких дисков
2 - Обычный HDD
3 - Сетевой диск
4 - CD-ROM
5 - Виртуальный RAM-диск
Остановимся подробнее на строке free = FormatNumber (fso.GetDrive(drive).FreeSpace /1048576, 1).