Microsoft Internet Explorer 5, являясь жизнеспособной платформой разработок на
базе Microsoft Windows, предоставляет возможность создавать HTML приложения.
HTA являются полноценными приложениями. Эти приложения вполне надежны, они отображают
только меню, иконки, панели инструментов, и заголовочную информацию, создаваемые
Web-разработчиком.Говоря вкратце, HTA объединяют в себе всю мощь Internet Explorer -
его объектную модель, производительность, мощь рендеринга, поддержку протоколов,
и технологию загрузки каналов - все это без нарушения строгой модели безопасности
и пользовательского интерфейса броузера.
Исторически, языки программирования типа C++ и MicrosoftR Visual Basic
предоставляли объектные модели и доступ к ресурсам системы, в которых
нуждаются разработчики.
С появлением HTA пришло время добавить динамический HTML (DHTML) со скриптами
к этому списку. HTA не только поддерживают все средства, поддерживаемые Web страницами
а именно HTML, каскадные листы стилей (CSS), скрипты и события, но также
специфическую функциональность HTA.
Добавление этой функциональности обеспечивает контроль над разработкой пользовательского
интерфейса и доступ к пользовательской системе. Более того, будучи выполняемым как
доверительное приложение, HTA не является объектом для ограничений безопасности,
накладываемых на Web страницы. Как и при запуске любого выполнимого файла,
перед загрузкой HTA пользователя спрашивают только раз, сохранить приложение или выполнить.
Будучи сохраненным в пользовательской системе, файл может быть выполнен по желанию
пользователя в любое другое время.
Конечным результатом является то, что HTA выполняется также, как и любой выполнимый
файл (.exe), написанный на C++ или Visual Basic.
HTA подходят для различных применений, пишите ли вы прототипы, создаете волшебники
(wizards), или создаете полноценные приложения. Все, что в данный момент
предоставляют DHTML и скрипты: формы, мультимедиа, Web приложения, HTML редакторы,
и броузеры - доступно для HTA...и еще кое-что.
Но самое лучшее то, что HTA упрощают многие задачи. Простота создания прототипов
,используя HTA, делает возможным для менеджеров ПО и дизайнеров писать сценарии для
диалоговых окон и предупреждений, в то время как разработчики на C++ или Visual Basic
программируют основную функциональность.
Создание HTA
Создайте HTA написав HTML страницу и сохранив ее с расширением .hta .
Этот пример демонстрирует наипростейший возможный HTA. Он состоит из строки
"Hello, World", и сохраняется с расширением .hta . Internet Explorer
настолько всепрощающий, что даже отсутствие тэгов HTML и BODY не вызывает ошибки.
Программа может быть закрыта нажатием ALT+F4.
Это свойство требует наличия MicrosoftR Internet Explorer 4.0 или более поздней версии.
Для запуска HTA требуется либо дважды щелкнуть левой клавишей мыши на его иконке,
либо выполнить его из меню ПУСК, либо открыть его через URL, либо запустить его из командной строки.
Будучи запущенным, HTA интерпретирует все, что находится внутри тэга BODY
и отображает значение тэга TITLE как заголовок окна.
Особая функциональность HTA
В то время, как расширение .hta указывает системе как работать с приложением,
новый тэг HTA:APPLICATION и аттрибуты указывают окну, как себя вести будучи
приложением.
Этот тэг предоставляет ограниченный набор аттрибутов, управляющих всем от
стиля границы окна и до программной иконки и меню.
Большинство аттрибутов доступны только для чтения, их значения по умолчанию
оптимизированы для среднего приложения.
Для создания функционирующего HTA, этот тэг должен быть описан
внутри тэга HEAD.
Тэг HTA:APPLICATION в нижеследующем примере устанавливает свойства приложения,
не доступные в DHTML. Согласно запрещениям в аттрибутах, данное приложение не имеет
ни границы окна (border),
ни заголовка, ни стандартного системного меню.
Заголовок приложения появляется только в списке задач Windows, но не в панели задач.
При этом разрешено выполнение только одного экземпляра приложения.
Будучи запущенным, HTA известен системе как "monster"
и его размер устанавливается величиной, необходимой для заполнения всего экрана.
Программа может быть закрыта нажатием alt+f4.
Междоменному написанию скриптов свойственно адресовать риск безопасности, HTA разрешает атрибут
APPLICATION
для FRAME
и IFRAME.
Этот оригитнальный HTA атрибут не единственная доступная предосторожность защиты. HTA разработаны таким
образом, что FRAME и IFRAME, где атрибут
APPLICATION установлен в NO,
не имеют доступа скрипта в HTA, который их содержит. Таким образом никакое незащищённое
содержимое не допускается в HTA через недоверенное окно.
HTA разработаны таким образом, что недоверенные HTML FRAME и
IFRAME не имеют доступа скрипта к HTA, который их содержит. В отношении
FRAME, которые не являются разрешёнными для HTA, фрейм высшего уровня содержит
главное окно для всех FRAME, содержащихся в нём. Для вышеупомянутого FRAME, window.top
и window.self
одно и тоже. Кроме того, ненадёжные FRAME и IFRAME
не получают ни referrer
ни opener URL
из родительского HTA. Конечный результат - они не знают о HTA, содержащемся внутри, как о родительском окне.
В приложениях, где всё содержимое безопасно, FRAME и IFRAME
могут быть благополучно помечены как доверенные. Мастера и контрольные панели являются примерами безопасного
содержимого. Разрешённый HTA статус IFRAME в нижеуказанном примере
позволяет ему передавать информацию обратно в его родительское окно.
<IFRAME SRC="filename.htm" APPLICATION="yes">
В противоположность, IFRAME, который позволяет просмотр незащищённого содержимого, должен быть
запущен как обычный HTML. Содержимое в примере IFRAME ниже -
подчиняется настройке безопасности для его зоны. Следующий IFRAME может быть
использован при внедрении HTML.
<IFRAME SRC="filename.htm" APPLICATION="no">
Запомните, атрибут APPLICATION
игнорируется, если он используется в HTML предпочтительнее, чем HTA.
При выполнении HTA, пользователи должны принимать те же меры предосторожности,
как и с любой выполнимой программой: устанавливать только те HTA, которые созданы в надёжных источниках. HTA
не могут быть подписаны. Однако они могут быть установлены из отмеченных cabinet-файлов (.cab) или
других отмеченных инсталляционных форматов. Так или иначе, наиболее ответственные источники
будут корпоративными сетями intranet и признанными поставщиками программного обеспечения.
Совместимость
Реализация HTA фирмой Microsoft ограничена 32-битными системами Windows,
выполняющими Internet Explorer 5. HTA не поддерживают свойства или внешний
объект HTML
AutoComplete в формах .
Реализация HTA
Реализация HTA поддерживает методы многократного размещения: модель сети,
модель готовой программы, и модель, составленная из них обеих. Разработчики приложений должны решить
как лучше удовлетворить свои распределённые потребности.
Модель Сети
Сетевая модель размещения состоит из приложения, которое может быт запущено и
которым можно управлять как обычной Web страницей. По этому сценарию HTA загружается просто
просматривая свой URL или с помощью доступа к нему из списка Избранное Internet Explorer.
Прежде чем загрузиться, появляется диалоговое окно Internet Explorer и предлагает пользователю
выбрать: открыть или сохранить приложение. После загрузки, с сервера по необходимости пересылаются
компоненты вспомогательного приложения и потом они помещаются в кэш. Сервера должны
иметь тип MIME "application:hta", зарегистрированный для доставки через протокол http:
для работы.
Эта модель предоставляет некоторые важные мощности. Это способствует тому, что обновление проходит
более гладко: администратору intranet нужно только отправить новый код
или содержание клиенту, чтобы получить последнюю версию. Это обеспечивает удобство
и лёгкость в использовании: пользователю никогда не нужно устанавливать или удалять приложение.
Приложения, которые не используются, автоматически смещаются из кэша. Одно очень важное соображение
при оценке этой модели размещения состоит в том, что серверные приложения не могут быть запущены
автономно или когда портится сервер. Один вариант состоит в том, чтобы предупредить
этот возможный случай при помощи внедрения возможностей дополнительного канала (CDF) в Internet Explorer (начиная
с версии 4.0).
Модель готовой программы
В этой модели процесс инсталляции для HTA такой же самый, как и для обычных приложений.
Файлы копируются с диска или по сети, используя любую программу установки или самораспаковывающийся
исполнимый файл. Программа установки помещает приложение в директорию Program Files или в
директорию, выбранную пользователем. Ссылка на HTA включается в меню Пуск. Также регистрируется
зависимость приложения от Internet Explorer версии 5 и выше. Тут пользователя предупреждают, что
удаление Internet Explorer приведёт к тому, что это приложение станет неработоспособным.
Обратитесь к поставщикам сервиса for vehicles для компоновки и поставки HTAs to your specifications.
Как и модель сети, модель готовой программы имеет свои достоинства. Приглашение для
пользователя появляется только во время начальной установки; после этого приложение запускается
как доверенная программа, как обычный исполнимый(.ехе) файл. Установленное HTA также всегда
доступно для пользователей, независимо от того, соединены они с сервером или нет.
Смешанная модель размещения
Допустимо любое сочетание сетевой модели размещения и модели размещения готовой программы.
Метод доставки незаметен для HTA. Составные части HTA всегда ссылаются как абсолютные или
относительные URL, таким образом приложение работает просто.
Изучите ваши приоритеты
Каковы ваши потребности в распределении? Следующий список представляет несколько сценариев:
Если хранение сведений о времени начальной загрузки стоит на первом месте, то установите
главное окно HTA на клиентскую машину, оставляя HTA возможность доступа к серверу для связи с
картинками и служебным файлам.
Если ваши пользователи запускают приложение как на работе, так и удалённо, рассмотрите
возможность размещения HTA за пределами локальной сети используя модель сети, и в то же время
также распределяя его для удалённого использования используя модель готовой программы.
Возможно для вашей деятельности требуется такой сервис, где содержание поддерживается отдельными
группами, и распределяется между серверами. Приложение будет выглядеть и функционировать
как единое целое, если вы создадите интерфейс одного пользователя и будете использовать сетевое
размещение чтобы автоматически передавать самую последнюю информацию.
Справочник по HTML Приложениям
Microsoft Internet Explorer 5 это платформа для разработки
HTML Приложений (HTA).
Ряд расширений объектной модели (HTA) позволяют разработчику
настраивать пользовательский интерфейс приложений.
Следующие ссылки обеспечивают доступ к особой функциональности HTA.
Активизирует расширенную объектную модель для создания HTML приложений (HTA).
Замечание
Внимание HTA потенциально способны выполнить на клиентской машине
скрипт, написанный со злыми намерениями. HTA, как и файлы .exe имеют доступ чтение/запись к
файлам и системному реестру на клиентской машине. Мощные выполнимые файлы могут быть созданы
и распространены очень быстро с помощью всего нескольких коротких строк скрипта.
Использование HTA не рекомендуется там, где безопасность исходных текстов выполняемых файлов сомнительна.
Вы можете создавать HTA, сохраняя существующие страницы HTML с расширением .hta
. Однако, для установки свойств окна приложения, таких как перечисленные в таблице, следует вставить тэг HTA:APPLICATION внутри тэга HEAD
Элемент HTA:APPLICATION требует закрывающего тэга.
<HTA:APPLICATION ... > ... </HTA:APPLICATION>
Так как тэг элемента HTA:APPLICATION является пустым, он также может быть закрыт
использую следующий прием.
<HTA:APPLICATION ... />
Памятка При использовании вышеуказанного приема, прямому слэшу
(/) должен предшествовать пробельный символ.
Это свойство доступно только для чтения. Свойство не имеет значения по умолчанию.
Замечание
Будучи установленным в true, свойство singleInstance проверяет значение applicationName
перед запуском экземпляра приложения. Чтобы проверка была успешной, значение applicationName
должно быть уникальным. Можно использовать значение свойства applicationName
для идентификации единственности запущенного приложения, независимо
от адреса URL, используемого для доступа к нему.
Это свойство требует наличия MicrosoftR Internet Explorer 5.0 или выше.
BORDER аттрибут | border свойство
Получает тип бордюра окна для HTML приложения (HTA).
Синтаксис
HTML
<HTA:APPLICATION BORDER = sType... >
Scripting
[ sType = ]
HTA:APPLICATION.border
Пример
sType
Строка определяющая одно из следующих значений:
thick
По умолчанию. Толстый бордюр окна, плюс бордюр для изменения размера окна.
dialog
Бордюр диалогового окна.
none
Окно без бордюра.
thin
Тонкий бордюр окна с заголовком.
Свойство доступно только для чтения. Значение свойства по умолчанию - thick.
Замечание
Свойство border влияет на толщину бордюра и действительно только для окон HTA,
у которых есть панель заголовка и сам заголовок. Устанавливая border
в none, вы убираете панель заголовка, иконку программы, и кнопки максимизирования,
минимизирования. Это свойство может быть использовано со свойством borderStyle,
которое контролирует содержимое бордюра в границах окна.
Это свойство требует наличия MicrosoftR Internet Explorer 5.0 или выше.
BORDERSTYLE аттрибут | borderStyle свойство
Получает набор стилей бордюра клиентской области внутри окна HTML приложения.
Синтаксис
HTML
<HTA:APPLICATION BORDERSTYLE = sStyle... >
Scripting
[ sStyle = ]
HTA:APPLICATION.borderStyle
Параметры
sStyle
Строка которая определяет одно из следующих значений:
normal
По умолчанию. Нормальный бордюр.
complex
Приподнятый и утопленный бордюр.
raised
Приподнятый 3-D бордюр.
static
3-D бордюр, обычно используемый для окон, не обрабатывающих ввод пользователя.
sunken
Утопленный 3-D бордюр.
Это свойство доступно только для чтения. Это свойство имеет значение по умолчанию normal.
Замечания
Все HTA имеют два смежных бордюра: один для содержимого окна, и
один для окна приложения. Свойство borderStyle устанавливает стиль
для бордюра содержимого, в то время как свойство border
контролирует бордюр окна приложения.
Это свойство требует наличия MicrosoftR Internet Explorer 5.0 или выше.
Атрибут CAPTION | Свойство caption
Определяет будет ли в окне HTML приложения (HTA) отображаться панель заголовка.
Синтаксис
HTML
<HTA:APPLICATION CAPTION = bTitleBar... >
Scripting
[ bTitleBar = ]
HTA:APPLICATION.caption
Возможные значения
bTitleBar
Логическое значение определяющее одно из следующих значений:
yes
- по умолчанию. Панель заголовка отображается.
no
- Панель заголовка не отображается.
Это свойство доступно только для чтения. По умолчанию значение этого свойства
yes.
Примечания
title
приложения отображается только когда свойство caption установлено в yes. Отключение свойства caption также отключит кнопки
'Свернуть', 'Развернуть' и программную иконку. В этом случае, вы должны предоставить
альтернативный способ выхода из HTA, например, кнопка, вызывающая метод
close
объекта window
.
Устанавливает или определяет в каком окне будут открываться загружаемые документы : в
основном окне HTML приложения (HTA), или в новом окне.
Синтаксис
HTML
<HTA:APPLICATION NAVIGABLE = sNavigable... >
Scripting
[ sNavigable = ]
HTA:APPLICATION.navigable
Возможные значения
sNavigable
Строка определяющая одно из следующих значений:
no
- по умолчанию. Будут открываться в новых окнах.
yes
- будут открываться в основном окне.
Это свойство доступно только для чтения. По умолчанию значение этого свойства no.
Примечания
Свойство navigable доступно только для чтения, однако атрибут
NAVIGABLE может быть использован для указания начального значения.
Атрибут SCROLL | Свойство scroll
Устанавливает или определяет будут ли отображаться полосы прокрутки.
Синтаксис
HTML
<HTA:APPLICATION SCROLL = sScroll... >
Scripting
[ sScroll = ]
HTA:APPLICATION.scroll
Возможные значения
sScroll
Строка определяющая одно из следующих значений:
yes
- по умолчанию. Полосы прокрутки отображаются.
no
- полосы прокрутки не отображаются.
auto
Полосы прокрутки появляются только когда содержимое документа
не умещается в клиентской области окна.
Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.
Примечания
Свойство scroll доступно только для чтения, однако можно использовать
атрибут SCROLL для присвоения начального значения.
Установление значения свойства body.scroll
равным no - это альтернативный способ предотвратить
появление полос прокрутки.
Пример
<HTML>
<HEAD>
<HTA:APPLICATION
ID=oHTA
SCROLL="no"/>
<TITLE>HTA Properties</TITLE>
<STYLE>
BODY {font-size: 8pt; font-family: Arial;}
</STYLE>
</HEAD>
<SCRIPT>
function readFun()
{
alert("The scroll property is set to: " + oHTA.scroll);
}
</SCRIPT>
<BODY>
<P>Read the property:
<INPUT TYPE="button" VALUE="Test scroll value" onClick="readFun()"/>
</P>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
</BODY>
</HTML>
Атрибут SCROLLFLAT | Свойство scrollFlat
Устанавливает или определяет в каком виде будут отображаться полосы прокрутки :
в 3-х мерном виде, или в 2-х мерном виде.
Синтаксис
HTML
<HTA:APPLICATION SCROLLFLAT = sScrollFlat... >
Scripting
[ sScrollFlat = ]
HTA:APPLICATION.scrollFlat
Возможные значения
sScrollFlat
Строка определяющая однио из следующих значений:
yes
- полосы прокрутки двухмерные.
no
- по умолчанию. Полосы прокрутки трёхмерные.
Это свойство доступно только для чтения. По умолчанию значение этого свойства no.
Примечания
Свойство scrollFlat доступно только для чтения, однако для присвоения
начального значения можно использовать атрибут SCROLLFLAT.
Пример
<HTML>
<HEAD>
<HTA:APPLICATION
ID=oHTA
SCROLLFLAT="yes"/>
<TITLE>HTA Properties</TITLE>
<STYLE>
BODY {font-size: 8pt; font-family: Arial;}
</STYLE>
</HEAD>
<SCRIPT>
function readFun()
{
alert("The scrollFlat property is set to: " + oHTA.scrollFlat);
}
</SCRIPT>
<BODY>
<P>Read the property:
<INPUT TYPE="button" VALUE="Test scrollFlat value" onClick="readFun()"/>
</P>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>
<p>.</p><p>.</p><p>.</p><p>.</p><p>scroll down</p>
</BODY>
</HTML>
Атрибут SELECTION | Свойство selection
Устанавливает или Определяет может ли содержимое документа быть выбрано мышкой или с помощью
клавиатуры.
Синтаксис
HTML
<HTA:APPLICATION SELECTION = sSelection... >
Scripting
[ sSelection = ]
HTA:APPLICATION.selection
Возможные значения
sSelection
Строка определяющая одно из следующих значений:
yes
- по умолчанию. Содержимое может быть выбрано.
no
- содержимое не может быть выбрано.
Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.
Примечания
Свойство selection доступно только для чтения, однако для присвоения
начального значения можно использовать атрибут SELECTION.
Присвоение атрибуту SELECTION значения no
запрещает появление контекстного меню. В этом случае, присвоение атрибуту CONTEXTMENU значения yes
не произведет никакого эффекта.
Замечание Использование в документе
редактируемых элементов переопределяет значение selection. Любой объект
может быть выбран, когда значение свойства contentEditable
установлено в true где угодно в HTML Приложении (HTA).
Пример
<HTML>
<HEAD>
<HTA:APPLICATION
ID=oHTA
CONTEXTMENU="yes"
SELECTION="no"/>
<TITLE>HTA Properties</TITLE>
<STYLE>
BODY {font-size: 8pt; font-family: Arial;}
</STYLE>
</HEAD>
<SCRIPT>
function readFun()
{
alert("The selection property is set to: " + oHTA.selection);
}
</SCRIPT>
<BODY>
<P>Read the property:
<INPUT TYPE="button" VALUE="Test selection value" onClick="readFun()"/>
</P>
</BODY>
</HTML>
Атрибут SHOWINTASKBAR | Свойство showInTaskBar
Определяет будет ли HTML приложение (HTA) появляться на панеле задач MicrosoftR
WindowsR.
Синтаксис
HTML
<HTA:APPLICATION SHOWINTASKBAR = bShow... >
Scripting
[ bShow = ]
HTA:APPLICATION.showInTaskBar
Возможные значения
bShow
Логическое значение определяющее одно из следующих значений:
yes
- по умолчанию. Приложение отбражается на панеле задач.
no
- приложение не отбражается на панеле задач.
Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.
Примечания
Свойство showInTaskBar не влияет на появление приложения в списке
приложений, который появляется когда пользователь нажимает ALT+TAB.
Определяет отображается ли системное меню в HTML приложении (HTA).
Синтаксис
HTML
<HTA:APPLICATION SYSMENU = bMenu... >
Scripting
[ bMenu = ]
HTA:APPLICATION.sysMenu
Возможные значения
bMenu
Логическое значение определяющее одно из следующих значений:
yes
- по умолчанию. Системное меню отображается на панеле заголовка.
no
- системное меню отображается на панеле заголовка.
Это свойство доступно только для чтения. По умолчанию значение этого свойства yes.
Примечания
Системное меню HTA обозначается программной иконкой в левом углу панели заголовка
When clicked, системное меню HTA показывает все команды входящие в стандартное
MicrosoftR WindowsR системное меню, включая Восстановить, Переместить, Размер,
Свернуть, Развернуть, и Закрыть.
Показывает, является ли содержимоеобъекта HTML приложением
и, следовательно, не является входящим в модель безопасности программы просмотра.
Синтаксис
HTML
<ELEMENT APPLICATION=bApplication ...
>
Scripting
N/A
Возможные значения
bApplication
Булеан, определяющий, действительно ли содержимое основано на модели
безопасности программы просмотра.
no
- по умолчанию. Применяются правила безопасности программы
просмотра для ненадежного содержания; таким образом, всё содержимое FRAME
и IFRAME является ненадёжным.
yes
- всё содержимое FRAME и IFRAME является надёжным.
Примечания
Атрибут APPLICATION может быть использован только в HTA.
Вы можете использовать это свойство для контроля содержимого Вашей Web-страницы.
Например, Вы можете использовать атрибут для создания HTA, который содержит
один FRAME, который позволяет доступ к ненадёжному содержанию, такому, как
Internet URL, и другой FRAME, который позволяет доступ к надёжному содержанию.
Вы можете также использовать атрибут для перекрёстного домейн скриптинга между
фреймами с HTA.
Вложенные FRAME или IFRAME требуют каждого контейнера FRAME, чтобы быть НТА
(например, APPPLICATION="yes") для глубокого FRAME или IFRAME для принятия
величиной APPLICATION значения "yes". Возьмём, например, IFRAME, который
содержит набор фреймов. Каждый FRAME в наборе фреймов считается вложенным.
Для глубокого FRAME, учитывая безопасность, он и каждый родительский FRAME
должен быть объявлен как APPLICATION=''yes'.
HTA разработаны для предотвращения возможности скриптового доступа каждого
ненадёжного FRAME и IFRAME к HTA, который их содержит. В случае FRAME без HTA
фрейм более высокого порядка включает верхнее окно для каждого FRAME, входящего
в его состав. Window.top и window.self те же для этого фрейма. Вдобавок, ненадёжные
FRAME или IFRAME не получает ни ссылку, ни открытый URL родительского HTA.
Это значит, что FRAME или IFRAME не влияют на родительское окно, содержащее HTA
При создании сценариев для Active Server Pages,
Windows Scripting Host или других приложений, где могут
быть использованы сценарии, часто нужно
добавлять, переносить, изменять, создавать или
удалять каталоги (директории) и файлы на
Web-сервере. Также может понадобиться возможность
управления и информация о дисках, которые
связаны с Web-сервером. Использование сценариев
позволит Вам работать с дисками, каталогами и
файлами, используя объектную модель FileSystemObject.
Введение в FileSystemObject и
Scripting Run-Time Library
Объектная модель FileSystemObject (FSO) позволяет
Вам использовать привычный синтаксис object.method с
большим числом свойств, методов и событий для
работы с каталогами и файлами.
Использование этой объектно-ориентированной
модели возможно с:
HTML для создания Web-страниц
Windows Scripting Host для создания пакетных файлов для
Microsoft Windows
Script Control для обеспечения использования
сценариев для приложений, написанных на других
языках
Использование FSO на стороне клиента поднимает
серьезные вопросы об обеспечении безопасности
локальной файловой системы клиента от
возможного несанкционированного доступа. Здесь
предполагается использование объектной модели
FSO для создания сценариев для Web-страниц на
стороне сервера. При этом установки безопасности
Internet Explorer по умолчанию не позволяют на стороне
клиента использовать объекты FileSystemObject.
Изменение этих установок по умолчанию может
повлечь за собой возможность
несанкционированного доступа к файловой системе
локального компьютера, что в результате может
привести к нарушению целостности системы, потери
данных и т.д.
Объекты FSO дают возможность вашим приложениям на
стороне сервера создавать, изменять, переносить
и удалять каталоги, определять, существует та
либо иная папка и где она находится. Вы также
можете найти такую информацию о каталогах, как их
имена, даты их создания или последнего изменения
и т.п.
Объекты FSO также облегчают работу с файлами. При
работе с файлами основной задачей является
сохранение данных с наилучшим использованием
места и ресурсов, в формате, обеспечивающим
лёгкий доступ. Вам нужно создавать файлы,
вставлять и изменять информацию, и выводить
(читать) её. Сохранение информацию в базе данных,
как Access или SQL Server, добавляет значительное
количество дополнений в ваше приложение, тогда
сохранение ваших данных в двоичный или текстовый
файл будет наиболее эффективным решением.
Объектная модель FSO, которая содержится в
библиотеке сценариев (Scrrun.dll), поддерживает
создание текстового файла и работу с ним с
помощью объекта TextStream. Хотя пока ещё не
поддерживается создание двоичных файлов и
операции с ними, в будущем планируется это
сделать.
Объекты
FileSystemObject
Объект/Коллекция
Описание
FileSystemObject
Основной объект. Содержит
методы и свойства, позволяющие создавать,
удалять, получать информацию и в общем управлять
дисками, каталогами и файлами. Многие методы
этого объекта повторяются в других объектах FSO;
это сделано для удобства.
Drive
Объект. Содержит методы и
свойства, которые позволяют получить информацию
о дисках системы, например их название и сколько
свободного места доступно. Запомните, что
"диском" считается не только винчестер, но и
CD-ROM диск, диск RAM и т.д. Диск не обязательно должен
быть присоединён к системе, он также может быть
логически подключён через сеть.
Drives
Коллекция. Предоставляет
список дисков, подключённых в системе, как
физических, так и логических. Коллекция Drives
включает все диски, независимо от типа.
File
Объект. Содержит методы и
свойства, которые позволяют создавать, удалять
или перемещать файлы. Также позволяет
запрашивать систему о имени файла, пути, и другие
различные свойства.
Files
Коллекция. Предоставляет
список файлов, содержащихся в каталоге.
Folder
Объект. Содержит методы и
свойства, которые позволяют создавать, удалять
или перемещать каталоги. Также позволяет
запрашивать систему о имени каталога, пути, и
другие различные свойства.
Folders
Коллекция. Предоставляет
список каталогов в Folder.
TextStream
Объект. Позволяет читать и
записывать в текстовые файлы.
Программируя с
FileSystemObject
Для программирования с
объектной моделью FileSystemObject:
Используем метод CreateObject для создания объекта
FileSystemObject.
Используем соответствующий метод в созданном
объекте.
Получаем доступ к свойствам объекта.
Объектная модель FSO содержится в библиотеке
сценариев, которая находится в файле Scrrun.dll.
Следовательно, вы должны иметь этот файл в
соответствующей директории системы на вашем
Web-сервере для использования объектной модели FSO.
Создание объекта FileSystemObject Во-первых, создайте объект
FileSystemObject, используя метод CreateObject. В VBScript
используйте следующий код для создания
экземплярa FileSystemObject:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
В Jscript то же самое будет делать следующий код:
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
В обоих этих примерах Scripting является именем
библиотеки и FileSystemObject является именем объекта,
который вы хотите создать. Вы можете создать
только один экземпляр объекта FileSystemObject. Применение соответствующего метода Во-вторых, используйте
соответствующий метод объекта FileSystemObject.
Например, для создания нового объекта
используйте или CreateTextFile или CreateFolder (объектная
модель FSO не поддерживает создание или удаление
дисков). Для удаления объектов используйте
методы DeleteFile и DeleteFolder объекта FileSystemObject, или метод
Delete объектов File и Folder. Вы также можете копировать
и перемещать файлы и каталоги, используя
соответствующие методы. Примечание. Некоторые
функциональные возможности в FileSystemObject являются
излишними. Например, вы можете скопировать файлы,
используя метод CopyFile объекта FileSystemObject или метод
Copy объекта File. Эти методы работают одинаково. Доступ к существующим дискам, файлам
и каталогам
Для получения доступа к существующим дискам,
файлам или каталогам используйте
соответствующий "get" метод объекта FileSystemObject:
GetDrive
GetFolder
GetFile
Для получения доступа к существующему файлу в
VBScript:
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("c:\test.txt")
В Jscript то же самое будет делать следующий код:
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile("c:\\test.txt");
Не используйте "get" методы для только что
созданных объектов после того, как "create"
функция уже вернула handle этого объекта. Например,
если вы создали новый каталог, используя метод
CreateFolder, не используйте метод GetFolder для доступа к
таким его свойствам, как Name, Path, Size. Только
установите переменную в функции CreateFolder для
получения handle только созданной директории, затем
получайте доступ к его свойствам, методам и
событиям. Чтобы сделать это в VBScript, используйте
следующий код:
Sub CreateFolder
Dim fso, fldr
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.CreateFolder("C:\MyTest")
alert("Created folder: " & fldr.Name)
End Sub
Для установки переменной в функции CreateFolder в
JScript:
function CreateFolder()
{
var fso, fldr;
fso = new ActiveXObject("Scripting.FileSystemObject");
fldr = fso.CreateFolder("C:\\MyTest");
alert("Created folder: " + fldr.Name);
}
Получение доступа к свойствам
объекта
Получив handle объекта, вы можете получить доступ к
его свойствам. Например, для получения имени
определённой папки, сначала создайте экземпляр
объекта, затем получите его handle с помощью
соответствующего метода (в этом случае, методом
GetFolder, после того, как каталог уже создан).
Используйте этот код для получения handle методом
GetFolder в VBScript:
Set fldr = fso.GetFolder("c:\")
В Jscript то же самое будет делать следующий код:
var fldr = fso.GetFolder("c:\\");
Имея handle объекта Folder, вы можете проверить его
свойство Name. Используйте следующий код для
проверки этого в VBScript:
alert("Folder name is: " & fldr.Name)
В Jscript то же самое будет делать следующий код:
alert("Folder name is: " + fldr.Name);
Для нахождения последнего времени изменения
файла используйте данный VBScript код:
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject").
Set f1 = fso.GetFile("c:\detlog.txt")
alert("File last modified: " & f1.DateLastModified)
В Jscript то же самое будет делать следующий код:
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile("c:\\detlog.txt");
alert("File last modified: " + f1.DateLastModified);
Работа с дисками и
каталогами
С объектной моделью FileSystemObject (FSO) Вы
можете работать с дисками и каталогами
программно так же, как и в диалоговом режиме Windows
Explorer. Вы можете копировать и перемещать каталоги,
получать информацию о дисках и каталогах и т.п. Получение информации о дисках
Объект Drive позволяет Вам получить информацию о
дисках, которые подключёны в системе как
физически, так и через сеть. Его свойства
позволяют получить информацию о:
Общий размер диска в байтах (свойство TotalSize)
Сколько места доступно на диске в байтах
(свойства AvailableSpace или FreeSpace)
Какой тип диска (съёмный, постоянный, сетевой,
CD-ROM или диск RAM) (свойство DriveType)
Серийный номер диска (свойство SerialNumber)
Тип используемой на диске файловой системы (FAT,
FAT32, NTFS и т.д.) (свойство FileSystem)
Доступен ли диск для использования (свойство
IsReady)
Имя части диска и/или тома (свойства ShareName и
VolumeName)
Путь или корневой каталог диска (свойства Path и
RootFolder)
Пример использования объекта Object
Можно использовать объект Drive для получения
информации о диске. Вы не увидите ссылку на
объект Drive в следующем коде, вместо этого
используется метод GetDrive для получения ссылки на
существующий объект Drive (в этом случае drv).
Следующий пример демонстрирует как использовать
объект Drive в VBScript:
Sub ShowDriveInfo(drvPath)
Dim fso, drv, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
s = "Drive " & UCase(drvPath) & " - "
s = s & drv.VolumeName & "\n"
s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
s = s & " Kb" & "\n"
s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
s = s & " Kb" & "\n"
alert(s)
End Sub
Следующий код делает тоже самое в in JScript:
function ShowDriveInfo1(drvPath)
{
var fso, drv, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
drv = fso.GetDrive(fso.GetDriveName(drvPath));
s += "Drive " + drvPath.toUpperCase()+ " - ";
s += drv.VolumeName + "\n";
s += "Total Space: " + drv.TotalSize / 1024;
s += " Kb" + "\n";
s += "Free Space: " + drv.FreeSpace / 1024;
s += " Kb" + "\n";
alert(s);
}
Диск:
Работа с каталогами
Общие задачи при работе с каталогами и методы их
выполнения описаны в следующей таблице:
Задача
Метод
Создание каталога.
FileSystemObject.CreateFolder
Удаление каталога.
Folder.Delete или
FileSystemObject.DeleteFolder
Перемещение каталога.
Folder.Move или FileSystemObject.MoveFolder
Копирование каталога.
Folder.Copy или FileSystemObject.CopyFolder
Получить имя каталога.
Folder.Name
Выяснить, существует ли
каталог
FileSystemObject.FolderExists
Получить экземпляр
существующего объекта Folder.
FileSystemObject.GetFolder
Выяснить имя каталога в
корневом каталоге.
FileSystemObject.GetParentFolderName
Получить путь к системным
директориям.
FileSystemObject.GetSpecialFolder
Следующий пример демонстрирует, как
используются объекты Folder и FileSystemObject для
управления каталогами и получения информации о
них в VBScript:
Sub ShowFolderInfo()
Dim fso, fldr, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("c:")
alert ("Parent folder name is: " & fldr &
"\n")
alert ("Contained on drive " & fldr.Drive &
"\n")
If fldr.IsRootFolder = True Then
alert ("This is the root folder." &
""\n"<br>")
Else
alert ("This folder isn't a root folder." &
"<br><br>" )
End If
fso.CreateFolder ("C:\Bogus")
alert ("Created folder C:\Bogus" & "\n")
alert ("Basename = " & fso.GetBaseName("c:\bogus") &
"\n")
fso.DeleteFolder ("C:\Bogus")
alert ("Deleted folder C:\Bogus" & "\n")
End Sub
Этот пример показывает, как используются
объекты Folder и FileSystemObject in JScript:
function ShowFolderInfo()
{
var fso, fldr, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
fldr = fso.GetFolder("c:");
alert("Parent folder name is: " + fldr + "\n");
alert("Contained on drive " + fldr.Drive + "\n");
if (fldr.IsRootFolder)
alert("This is the root folder.");
else
alert("This folder isn't a root folder.");
alert("<br><br>");
fso.CreateFolder ("C:\\Bogus");
alert("Created folder C:\\Bogus" + "\n");
alert("Basename = " + fso.GetBaseName("c:\\bogus") +
"\n");
fso.DeleteFolder ("C:\\Bogus");
alert("Deleted folder C:\\Bogus" + "\n");
}
Работа с файлами
Существует два основных направления при
работе с файлами:
Создание файлов, добавление или удаление из них
данных, и чтение файлов
Перемещение, копирование и удаление файлов
Создание файлов
Существует три способа создания пустого
текстового файла (иногда называют "текстовый
поток"). Во-первых, с помощью метода
CreateTextFile. Следующий пример демонстрирует, как
создать текстовый файл, используя этот метод в
VBScript:
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
Для использования этого метода в JScript наберите
следующий код:
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
Во-вторых, можно создать
текстовый файл, используя метод OpenTextFile объекта
FileSystemObject с установленным флагом ForWriting. В VBScript код
будет следующим:
Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)
Для создания текстового файла с использованием
этого метода в JScript наберите следующий код:
var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
В-третьих, создать текстовый
файл можно с использованием метода OpenAsTextStream с
установленным флагом ForWriting. В VBScript код будет
следующим:
Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:\test1.txt")
Set f1 = fso.GetFile("c:\test1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)
В JScript код будет следующим:
var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\\test1.txt");
f1 = fso.GetFile("c:\\test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);
Запись информации в файл
Как только текстовый файл создан, запись данных в
файл происходит в три шага:
Открытие текстового файла.
Запись данных.
Закрытие файла.
Для открытия существующего файла используйте
либо метод OpenTextFile объекта FileSystemObject, либо метод
OpenAsTextStream объекта File.
Для записи данных в открытый текстовый файл
используйте методы Write, WriteLine или WriteBlankLines объекта
TextStream в соответствие с задачами, описанными в
следующей таблице.
Задача
Метод
Запись данных в открытый
текстовый файл без символа перехода на новую
строку.
Write
Запись данных в открытый
текстовый файл с символом перехода на новую
строку.
WriteLine
Запись одной или более
пустых строк в открытый текстовый файл.
WriteBlankLines
Для закрытия открытого файла используйте метод
Close объекта TextStream. Примечание. Символ перехода на
новую строку содержит символ или символы (в
зависимости от операционной системы) для
перехода курсора на начало новой строки (возврат
каретки/ввод строки). Имейте в виду, что на конце
некоторых строк могут уже стоять такие
непечатные символы.
Следующий пример на VBScript показывает, как открыть
файл, использовать все три метода записи данных в
файл, и затем закрыть файл:
Sub CreateFile()
Dim fso, tf
Set fso = CreateObject("Scripting.FileSystemObject")
Set tf = fso.CreateTextFile("c:\testfile.txt", True)
tf.WriteLine("Testing 1, 2, 3.")
tf.WriteBlankLines(3)
tf.Write ("This is a test.")
tf.Close
End Sub
Этот пример показывает, как использовать три
метода в JScript:
function CreateFile()
{
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c:\\testfile.txt", true);
tf.WriteLine("Testing 1, 2, 3.") ;
tf.WriteBlankLines(3) ;
tf.Write ("This is a test.");
tf.Close();
}
Чтение файлов
Для чтения данных из текстового файла
используйте методы Read, ReadLine, или ReadAll объекта
TextStream. Следующая таблица описывает применение
этих методов для различных задач:
Задача
Метод
Прочитать указанное число
символов из файла.
Read
Прочитать строку (не
включая символа новой строки).
ReadLine
Прочитать всё содержимое
текстового файла.
ReadAll
Если Вы используете методы Read или ReadLine и хотите
пропустить определённую часть данных,
используйте методы Skip or SkipLine. Результат работы
функции чтения сохранится в строке, которая
может быть отображена, обработана функциями
работы со строками (такими как Left, Right и Mid),
присоединена и т.д.
Следующий пример на VBScript показывает, как открыть
файл, записать в него, и затем прочитать с него:
Sub ReadFiles
Dim fso, f1, ts, s
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
alert("Writing file <br>")
f1.WriteLine "Hello World"
f1.WriteBlankLines(1)
f1.Close
alert("Reading file <br>")
Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)
s = ts.ReadLine
alert("File contents = '" & s & "'")
ts.Close
End Sub
Этот код делает то же самое на JScript:
function ReadFiles()
{
var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
alert("Writing file <br>");
f1.WriteLine("Hello World");
f1.WriteBlankLines(1);
f1.Close();
alert("Reading file <br>");
ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
s = ts.ReadLine();
alert("File contents = '" + s + "'");
ts.Close();
}
Перемещение, копирование и
удаление файлов
Объектная модель FSO имеет по два метода для
перемещение, копирование и удаление файлов, что и
показано в таблице.
Задача
Метод
Переместить файл
File.Move или FileSystemObject.MoveFile
Скопировать файл
File.Copy или FileSystemObject.CopyFile
Удалить файл
File.Delete или FileSystemObject.DeleteFile
Следующий пример на VBScript создаёт текстовый файл
в корневом каталоге диска C, записывает некоторую
информацию в него, переносить файл в директорию
\tmp, копирует файл в директорию \temp, затем удаляет
копии из обоих директорий.
Для того, чтобы следующий пример работал,
создайте директории \tmp and \temp в корневом каталоге
диска C:
Sub ManipFiles
Dim fso, f1, f2, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
alert("Writing file <br>")
f1.Write ("This is a test.")
f1.Close
alert("Moving file to c:\tmp <br>")
Set f2 = fso.GetFile("c:\testfile.txt")
f2.Move ("c:\tmp\testfile.txt")
alert("Copying file to c:\temp <br>")
f2.Copy ("c:\temp\testfile.txt")
alert("Deleting files <br>")
Set f2 = fso.GetFile("c:\tmp\testfile.txt")
Set f3 = fso.GetFile("c:\temp\testfile.txt")
f2.Delete
f3.Delete
alert("All done!")
End Sub
То же самое делает код на JScript:
function ManipFiles()
{
var fso, f1, f2, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
alert("Writing file <br>");
f1.Write("This is a test.");
f1.Close();
alert("Moving file to c:\\tmp <br>");
f2 = fso.GetFile("c:\\testfile.txt");
f2.Move ("c:\\tmp\\testfile.txt");
alert("Copying file to c:\\temp <br>");
f2.Copy ("c:\\temp\\testfile.txt");
alert("Deleting files <br>");
f2 = fso.GetFile("c:\\tmp\\testfile.txt");
f3 = fso.GetFile("c:\\temp\\testfile.txt");
f2.Delete();
f3.Delete();
alert("All done!");
}
Справочник по FileSystemObject: Алфавитный указатель
Устанавливает или возвращает имя тома указанного диска.
Add (Метод)
Описание
Добавляет новый объект Folder в коллекцию Folders.
Синтаксис:
object.Add (folderName)
Метод Add имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя коллекции Folders.
folderName
Обязателен. Имя нового объекта Folder, который добавляется.
Пример:
function AddNewFolder(path,folderName)
{
var fso, f, fc, nf;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(path);
fc = f.SubFolders;
if (folderName != "" )
nf = fc.Add(folderName);
else
nf = fc.Add("New Folder");
}
Если folderName уже существует, возникает ошибка.
AtEndOfLine (свойство)
Описание
Возвращает true, если указатель в файле находится непосредственно
перед символом конца строки вTextStream файле; false если нет.
Доступен толко для чтения.
Синтаксис:
object.AtEndOfLine
object всегда имя объектаTextStream.
Замечание:
Свойство AtEndOfLine применяется только для TextStream
файлов, окрытых для чтения; иначе, возникает ошибка.
Пример:
function GetALine(filespec)
{
var fso, a, s, ForReading;
ForReading = 1, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
a = fso.OpenTextFile(filespec, ForReading, false);
while (!a.AtEndOfLine)
{
s += a.Read(1);
}
a.Close( );
return(s);
}
AtEndOfStream (свойство)
Описание:
Возвращает true, если указатель в файле находится в конце TextStream файла; false если нет. Доступен только для чтения.
Синтаксис:
object.AtEndOfStream
object всегда имя объекта TextStream.
Замечание:
Свойство AtEndOfStream применяется только для файлов TextStream
, открытых для чтения, иначе возникает ошибка.
Пример:
function GetALine(filespec)
{
var fso, f, s, ForReading;
ForReading = 1, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile(filespec, ForReading, false);
while (!f.AtEndOfStream)
s += f.ReadLine( );
f.Close( );
return(s);
}
Attributes (свойство)
Устанавливает или возвращает аттрибуты файла или папки. Доступен для записи/чтения или только для чтения, в зависимости от аттрибута.
Синтаксис
object.Attributes [= newattributes]
свойство Attributes содержит следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта File или Folder.
newattributes
Необязательный. Если задан, то newattributes - это новое значение для аттрибутов указанного объекта object.
Настройки
Аргумент newattributes может иметь любое из следующих значений или любую их логическую комбинацию:
Константа
Значение
Описание
Normal
0
Обыкновенный файл. Ни один аттрибут не устанавливается.
ReadOnly
1
Файл только для чтения. Аттрибут доступен для чтения/записи.
Hidden
2
Скрытый файл. Аттрибут доступен для чтения/записи.
System
4
Системный файл. Аттрибут доступен для чтения/записи.
Volume
8
Метка тома дискового устройства. Аттрибут доступен только для чтения.
Directory
16
Папка или каталог. Аттрибут доступен только для чтения.
Archive
32
Файл изменен со дня последнего резервного копирования. Аттрибут доступен для чтения/записи.
Alias
64
Ссылка или ярлык. Аттрибут доступен только для чтения.
Compressed
128
Сжатый файл. Аттрибут доступен только для чтения.
Пример
function ToggleArchiveBit(filespec)
{
var fso, f, r, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec)
if (f.attributes && 32)
{
f.attributes = f.attributes - 32;
s = "Архивный бит очищен.";
}
else
{
f.attributes = f.attributes + 32;
s = "Архивный бит установлен.";
}
return(s);
}
AvailableSpace (свойство)
Описание
Возвращает количество свободного для пользователя места на указанном диске или сетевом ресурсе.
Синтаксис:
object.AvailableSpace
object всегда является объектом Drive.
Замечание:
Значение, возвращаемое свойством AvailableSpace, обычно совпадает со значением,
возвращаемым свойством FreeSpace. Разница может быть только если компьютерная система
поддерживает квоты.
Пример:
function ShowAvailableSpace(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Drive " + drvPath.toUpperCase() + " - ";
s += d.VolumeName + "<br>";
s += "Свободно на диске: " + d.AvailableSpace/1024 + " Kбайт";
return(s);
}
BuildPath (метод)
Описание:
Добавляет имя к существующему пути.
Синтаксис:
object.BuildPath(path, name)
Синтаксис метода BuildPath имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
path
Обязателен. Существующий путь, к которому добавляется name.
Путь может быть абсолютным или относительным и не нуждается в указании существующего каталога.
name
Обязателен. Имя присоединяемое к существующему пути path.
Замечание:
Метод BuildPath вставляет дополнительный разделитель пути между существующим путем и именем,
если это необходимо.
Пример:
function GetBuildPath(path)
{
var fso, newpath;
fso = new ActiveXObject("Scripting.FileSystemObject");
newpath = fso.BuildPath(path, "New Folder");
return(newpath);
}
Close (метод)
Описание
Закрывает открытый TextStream файл.
Синтаксис
object.Close();
object всегда имя объектаTextStream.
Пример:
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("Это проверка.");
a.Close();
Column (свойство)
Описание
Возвращает номер колонки текущей символьной позиции в TextStream файле.
Синтаксис:
object.Column
object всегда имя объекта TextStream.
Замечание:
После записи символа новой строки, но до записи любого другого символа, Column равен 1.
Пример:
function GetColumn()
{
var fso, f, m;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Hello World!");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
m = f.ReadLine();
return(f.Column);
}
Copy (метод)
Описание:
Копирует указанный файл или папку из одного местоположения в другое..
Синтаксис:
object.Copy( destination[, overwrite] );
Синтаксис метода Copy имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта File или Folder.
destination
Обязателен. Путь, куда должен быть скопирован файл или папка. Маски не допускаются.
overwrite
Необязателен. Логическое значение равное True (по умолчанию) - существующие папки или файлы перезаписываются; False - не перезаписываются.
Замечание:
Результаты действия метода Copy на объект File или Folder
идентичны использованию методов FileSystemObject.CopyFile или FileSystemObject.CopyFolder
где файл или папка, над которыми производится операция, определяются с помощью object передаваемого как Аргумент.
Однако следует помнить, что альтернативные методы способны копировать несколько файлов или папок.
Пример:
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("Это проверка.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Copy("c:\\windows\\desktop\\test2.txt");
CopyFile (метод)
Описание
Копирует один или несколько файлов из одного местоположения в другое.
Синтаксис метода CopyFile имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. object всегда имя объекта FileSystemObject.
source
Обязателен. Символьная строка указывающая на копируемый файл, которая может содержать маски, для копирования одного или нескольких файлов.
destination
Обязателен. Символьная строка, определяющая куда будут скопирован файл или файлы source. Использование масок не допустимо.
overwrite
Необязателен. Логическое значение, определяющие будут ли перезаписаны файлы. Если true, будут; если false - нет.
По умолчанию принимается true. Следует помнить, что CopyFile
не выполнится, если destination файлы имеют аттрибут "только для чтения",
независимо от значения overwrite.
Замечание:
Маски могут быть использованы только в последней компоненте пути аргумента source .
Например, можно писать:
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\letters\\*.doc", "c:\\tempfolder\\")
Но нельзя писать:
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\*\\R1???97.xls", "c:\\tempfolder")
Если source содержит маски или destination заканчивается разделителем пути (\),
считается, что destination - существующая папка, в которую копируются все совпадающие с шаблоном файлы.
Иначе, destination считается именем файла, который необходимо создать.
В любом случае, при копировании отдельного файла могут быть три ситуации:
Если destination не существует, source копируется. Это обычный случай.
Если destination является существующим файлом, возникает ошибка, если overwrite равен false.
Иначе, происходит попытка записать source поверх существующего файла.
Если destination является каталогом, возникает ошибка.
Ошибка также возникает, если source используя маски не совпадает ни с одним файлом.
Метод CopyFile останавливается при первой ошибке.
Не делается никаких попыток вернуться назад или отменить любые изменения
сделанные перед возникновением ошибки.
CopyFolder (метод)
Описание
Рекурсивно копирует один или несколько каталогов из одного местоположения в другое.
Синтаксис метода CopyFolder имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. object всегда имя объекта FileSystemObject.
source
Обязателен. Символьная строка указывающая на копируемую папку, которая может содержать маски, для копирования одной или нескольки папок.
destination
Обязателен. Символьная строка, определяющая куда будут скопирована папка и подкаталоги source. Использование масок не допустимо.
overwrite
Необязателен. Логическое значение, определяющие будут ли перезаписаны папки. Если true, будут; если false - нет.
По умолчанию принимается true.
Замечание:
Маски могут быть использованы только в последней компоненте пути аргумента source .
Например, можно писать:
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\mydocuments\\letters\\*", "c:\\tempfolder\\")
Но нельзя писать:
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\mydocuments\\*\\*", "c:\\tempfolder\\")
Если source содержит маски или destination заканчивается разделителем пути (\),
считается, что destination - существующая папка, в которую копируются все совпадающие с шаблоном папки и подкаталоги.
Иначе, destination считается именем папки, которую необходимо создать.
В любом случае, при копировании отдельной папки могут быть четыре ситуации:
Если destination не существует, source и все его содержимое копируется. Это обычный случай.
Если destination является существующим файлом, возникает ошибка.
Если destination является каталогом, производится попытка скопировать папку
и все ее содержимое. Если файл, содержащийся в source уже есть в destination,
возникает ошибка, если overwrite равен false.
Иначе, происходит попытка записать файл поверх существующего файла.
Если destination является каталогом только для чтения, возникает ошибка,
если производится попытка записать существующий файл "только для чтения" в этот каталог, а
overwrite равен false.
Ошибка также возникает, если source используя маски не совпадает ни с одним каталогом.
Метод CopyFolder останавливается при первой ошибке.
Не делается никаких попыток вернуться назад или отменить любые изменения,
сделанные перед возникновением ошибки.
CreateFolder (метод)
Описание
Создает папку.
Синтаксис
object.CreateFolder(foldername)
Метод CreateFolder имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
foldername
Обязателен. Строковое выражение определяещее имя создаваемого каталога.
Замечание
Если указанный каталог уже существует, возникает ошибка.
Пример
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateFolder("c:\\new folder");
CreateTextFile (метод)
Описание
Создает указанное имя файла и возвращает объект TextStream, который может быть использован для чтения или записи в файл.
Необязателен. Логическое значение, определяющее можно ли перезаписать существующий файл. Если его значение true
можно, false - нет. Если пропущен, существующие файлы не перезаписываются.
unicode
Необязателен. Логическое значение, определяющее создается Unicode или ASCII файл.
Если значение true - Unicode файл, false - ASCII файл.
Если пропущен, создается ASCII файл.
Пример
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("Это проверка.");
a.Close();
Если Аргумент overwrite равен false, или не задан,
для существующего файла filename возникает ошибка.
DateCreated (свойство)
Описание
Возвращает дату и время создания указанного файла или папки. Доступен только для чтения.
Синтаксис
object.DateCreated
object - всегда объект File или Folder.
Пример
function ShowFileInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = "Created: " + f.DateCreated;
return(s);
}
DateLastAccessed (свойство)
Описание
Возвращает дату и время последнего обращения к указанному файлу или папке. Доступен только для чтения.
Синтаксис
object.DateLastAccessed
object - всегда объект File или Folder.
Пример
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = filespec.toUpperCase() + "<br>";
s += "Создан: " + f.DateCreated + "<br>";
s += "Доступ осуществлен: " + f.DateLastAccessed + "<br>";
s += "Файл модифицирован: " + f.DateLastModified;
return(s);
}
Важно
Поведение данногго метода зависит от операционной системы.
Если система не поддерживает предоставление информации о времени,
ничего не будет возвращено.
DateLastModified (свойство)
Описание
Возвращает дату и время последнего изменения указанного файла или папки. Доступен только для чтения.
Синтаксис
object.DateLastModified
object - всегда объект File или Folder.
Пример
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = filespec.toUpperCase() + "<br>";
s += "Создан: " + f.DateCreated + "<br>";
s += "Доступ осуществлен: " + f.DateLastAccessed + "<br>";
s += "Файл модифицирован: " + f.DateLastModified;
return(s);
}
Delete (метод)
Описание
Удаляет указанный файл или папку.
Синтаксис
object.Delete( force);
Синтаксис метода Delete имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта File или Folder.
force
Необязателен. Логическое значение, устанавливаемое в True
если необходимо удалять файлы и папки с аттрибутом "только для чтения";
False (по умолчанию) - не удалять.
Замечание
Если указанный файл или папка не существуют, возникает ошибка.
Результат действия метода Delete на объекты File или Folder
идентичен методам FileSystemObject.DeleteFile или FileSystemObject.DeleteFolder.
Метод Delete не различает каталоги имеющие и не имеющие содержимое.
Указанный каталог удаляется независимо от того, имеет он содержимое или нет.
Пример
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("Это проверка.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Delete();
DeleteFile (метод)
Описание
Удаляет указанный файл.
Синтаксис
object.DeleteFile (filespec[, force] );
Синтаксис метода DeleteFile имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
filespec
Обязателен. Имя удаляемого файла. filespec может содержать маски
в последней компоненте пути.
force
Необязателен. Логическое значение равное true если файлы с аттрибутами "только для чтения" должны быть удалены; false (по умолчанию) не должны быть удалены.
Замечание
Если нет файлов совпадающих с шаблоном, возникает ошибка. Метод DeleteFile
останавливается на первой ошибке. Не делается попыток вернуться обратно или отменить изменения
произошедшие перед возникновением ошибки.
Пример
function DeleteFile(filespec)
{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFile(filespec);
}
DeleteFolder (метод)
Описание
Удаляет указанную папку и ее содержимое.
Синтаксис
object.DeleteFolder (folderspec[, force] );
Синтаксис метода DeleteFolder имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
folderspec
Обязателен. Имя удаляемого каталога. folderspec может содержать маски
в последней компоненте пути.
force
Необязателен. Логическое значение, устанавливаемое в true если каталоги с аттрибутом "только для чтения" должны быть удалены; false (по умолчанию) если не должны быть удалены.
Замечание
Метод DeleteFolder не различает каталоги, имеющие и не имеющие содержимое.
Каталог удаляется независимо от того, имеет он содержимое или нет.
Если не найдены папки совпадающие с шаблоном, возникает ошибка.
Метод DeleteFolder останавливается при первой ошибке. Не делается попыток вернуться обратно или отменить изменения произошедшие перед возникновением ошибки.
Пример
function DeleteFolder(folderspec)
{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFolder(folderspec);
}
Drive (объект)
Описание
Обеспечивает доступ к свойствам определенного диска или сетевого ресурса.
Пример
function ShowFreeSpace(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Диск " + drvPath + " - " ;
s += d.VolumeName + "<br>";
s += "Свободного пространства: " + d.FreeSpace/1024 + " Kbytes";
return(s);
}
Drive (свойство)
Описание
Возвращает букву диска, на котором находится указанный файл или папка. Доступен только для чтения.
Синтаксис
object.Drive
object всегда имя объекта File или Folder.
Пример
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " on Drive " + f.Drive + "<br>";
s += "Создан: " + f.DateCreated + "<br>";
s += "Доступ произведен: " + f.DateLastAccessed + "<br>";
s += "Модифицирован: " + f.DateLastModified;
return(s);
}
DriveExists (метод)
Описание
Возвращает True, если указанный диск существует; False - если нет.
Синтаксис
object.DriveExists(drivespec)
Синтаксис метода DriveExists имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
drivespec
Обязателен. Буква диска или полный путь.
Замечание
Для устройств со сменным носителем, метод DriveExists возвращает true даже если носитель отсутствует.
Следует использовать свойство IsReady объекта Drive для определения готовности дискового устройства.
Пример
function ReportDriveStatus(drv)
{
var fso, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.DriveExists(drv))
s += "Drive " + drv + " существует.";
else
s += "Drive " + drv + " не существует.";
return(s);
}
DriveLetter (свойство)
Описание
Возвращает букву диска физического устройства или сетевого ресурса. Доступен только для чтения.
Синтаксис
object.DriveLetter
object всегда объект Drive.
Замечание
Свойство DriveLetter возвращает строку нулевой длины (""), если указанный диск
не ассоциирован с буквой диска, например, сетевой ресурс, не ассоциированный с буквой диска.
Пример
function ShowDriveLetter(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Диск " + d.DriveLetter.toUpperCase( ) + ": - ";
s += d.VolumeName + "<br>";
s += "Свободного пространства: " + d.AvailableSpace/1024 + " Kbytes";
return(s);
}
Drive (коллекция)
Описание
Коллекция всех доступных дисков (только для чтения).
Замечание
Устройства со сменными носителями не требуют присутствия носителя, чтобы находиться в коллекции Drives
Пример
function ShowDriveList()
{
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
s = "";
for (; !e.atEnd(); e.moveNext())
{
x = e.item();
s = s + x.DriveLetter;
s += " - ";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName;
else
n = "[Диск не готов]";
s += n + "<br>";
}
return(s);
}
Drives (свойство)
Описание
Возвращает коллекцию Drives, содержащую все объекты Drive, доступные на локальной машине.
Синтаксис
object.Drives
object всегда объект FileSystemObject.
Замечание
Устройства со сменными носителями не требуют присутствия носителя, чтобы находиться в коллекции Drives.
Можно переходить от одного элемента к следующему в коллекции Drives,
используя объект Enumerator и оператор for:
Пример
function ShowDriveList()
{
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
s = "";
for (; !e.atEnd(); e.moveNext())
{
x = e.item();
s = s + x.DriveLetter;
s += " - ";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName;
else
n = "[Диск не готов]";
s += n + "<br>";
}
return(s);
}
DriveType (свойство)
Описание
Возвращает значение, отражающее тип указанного диска.
Синтаксис
object.DriveType
object всегда объект Drive.
Пример
function ShowDriveType(drvpath)
{
var fso, d, s, t;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(drvpath);
switch (d.DriveType)
{
case 0: t = "Неизвестный"; break;
case 1: t = "Сменный"; break;
case 2: t = "Жесткий"; break;
case 3: t = "Сетевой"; break;
case 4: t = "CD-ROM"; break;
case 5: t = "Виртуальный RAM Диск"; break;
}
s = "Диск " + d.DriveLetter + ": - " + t;
return(s);
}
File (объект)
Описание
Обеспечивает доступ ко всем свойствам файла.
Пример
function ShowFileInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.DateCreated;
return(s);
}
FileExists (метод)
Описание
Возвращает True, если указанный файл существует; False - если нет.
Синтаксис
object.FileExists(filespec)
Синтаксис метлода FileExists имеет следующие аргументы:
аргументы
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
filespec
Обязателен. Имя файла, существование которого проверяется. Полный путь
(абсолютный или относительный) должен задаваться, если проверяется существование файла
не в текущем каталоге.
Пример
function ReportFileStatus(filespec)
{
var fso, s = filespec;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists(filespec))
s += " существует.";
else
s += " не существует.";
return(s);
}
Files (коллекция)
Описание
Коллекция всех объектов File внутри папки.
Пример
function ShowFolderFileList(folderspec)
{
var fso, f, f1, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.files);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "<br>";
}
return(s);
}
Files (свойство)
Описание
Возвращает коллекцию Files, состоящую из всех объектов File,
содержащихся в указанной папке, включая файлы с аттрибутами "скрытый" и "системный".
Синтаксис
object.Files
object всегда объект Folder.
Пример
function ShowFolderFileList(folderspec)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.files);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "<br>";
}
return(s);
}
FileSystemObject (объект)
Описание
Обеспечивает доступ к файловой системе компьютера.
Синтаксис
y = new ActiveXObject("Scripting.FileSystemObject")
Пример
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("Это проверка.");
a.Close();
В примере, объект ActiveXObject присваивается FileSystemObject (fso).
Затем метод CreateTextFile создает файл как объект TextStream
(a), а метод WriteLine Записывает строку текста в файл. Метод Close
закрывает файл.
FileSystem (свойство)
Описание
Возвращает тип файловой системы, используемой на указанном диске.
Синтаксис
object.FileSystem
object всегда объект Drive.
Замечание
Доступные возвращаемые типы FAT, NTFS, и CDFS.
Пример
function ShowFileSystemType(drvPath)
{
var fso,d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(drvPath);
s = d.FileSystem;
return(s);
}
Folder (объект)
Описание
Обеспечивает доступ ко всем свойствам папки.
Пример
function ShowFolderInfo(folderspec)
{
var fso, folder, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
folder = fso.GetFolder(folderspec);
s = folder.DateCreated;
return(s);
}
Folders (коллекция)
Описание
Коллекция всех объектов Folder, содержащихся внутри определенного объекта Folder.
Пример
function ShowFolderList(folderspec)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.SubFolders);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "<br>";
}
return(s);
}
FolderExists (метод)
Описание
Возвращает True, если указанная папка существует; False, если нет .
Синтаксис
object.FolderExists(folderspec)
Синтаксис метода FolderExists имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
folderspec
Обязателен. Имя папки, существование которой проверяется. Полный путь
(абсолютный или относительный) задается если проверяется существование папки не
в текущем каталоге.
Пример
function ReportFolderStatus(fldr)
{
var fso, s = fldr;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FolderExists(fldr))
s += " существует.";
else
s += " не существует.";
return(s);
}
FreeSpace (свойство)
Описание
Возвращает количество свободного места, доступного для пользователя
на указанном диске или сетевом ресурсе. Доступен только для чтения.
Синтаксис
object.FreeSpace
object всегда объект Drive.
Замечание
Значение, возвращаемое свойством FreeSpace обычно совпадает со значением, возвращаемым
свойством AvailableSpace. Разница может быть только, если компьютеры используют квоты.
Пример
function ShowFreeSpace(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Диск " + drvPath.toUpperCase( ) + " - ";
s += d.VolumeName + "<br>";
s += "Свободного пространства: " + d.FreeSpace/1024 + " Kbytes";
return(s);
}
GetAbsolutePathName (метод)
Описание
Возвращает полный и недвусмысленный путь из предоставляемого указания пути.
Синтаксис
object.GetAbsolutePathName(pathspec)
Синтаксис метода GetAbsolutePathName имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
pathspec
Обязателен. Указание пути, который необходимо преобразовать в полный и недвусмысленный путь.
Замечание
Путь полон и недвусмысленен, если он обеспечивает полную ссылку от корневого каталога на диске.
Полный путь может заканчиваться символом разделителем пути (\), если он определяет корневой
каталог диска.
Считая, что текущим является каталог c:\mydocuments\reports, следующая таблица иллюстрирует
поведение метода GetAbsolutePathName.
pathspec
Возвращаемый путь
"c:"
"c:\mydocuments\reports"
"c:.."
"c:\mydocuments"
"c:\\"
"c:\"
"c:*.*\\may97"
"c:\mydocuments\reports\*.*\may97"
"region1"
"c:\mydocuments\reports\region1"
"c:\\..\\..\\mydocuments"
"c:\mydocuments"
Пример
function ShowAbsolutePath(path)
{
var fso, s= "";
fso = new ActiveXObject("Scripting.FileSystemObject");
s += fso.GetAbsolutePathName(path);
return(s);
}
GetBaseName (метод)
Описание
Возвращает строку, содержащую базовое имя файла (без какого-либо расширения), или папки по указанному пути.
Синтаксис
object.GetBaseName(path)
Синтаксис метода GetBaseName имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
path
Обязателен. Указание пути к компоненте, чье базовое имя должно быть возвращено.
Замечание
Метод GetBaseName возвращает строку нулевой длины (""), если ни одна компонента
не удовлетворяет аргументу path.
Памятка Метод GetBaseName работает только
по указанному пути path. Он не пытается ни изменить путь, ни проверить, существует ли данный путь.
Пример
function ShowBaseName(filespec)
{
var fso, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
s += fso.GetBaseName(filespec);
return(s);
}
GetDrive (метод)
Описание
Возвращает объект Drive соответствующий диску по указанному пути.
Синтаксис
object.GetDrive (drivespec);
Синтаксис метода GetDrive имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
drivespec
Обязателен. Аргумент drivespec может быть буквой диска (c), буквой диска с двоеточием (c:),
буквой диска с двоеточием и символом разделителем пути (c:\), или любым сетевым путем (\\computer2\share1).
Замечание
Для сетевх ресурсов, проводится проверка на существование ресурса.
Возникает ошибка, если drivespec не соответствует одной из допустимых форм,
или не существует.
Для вызова метода GetDrive с помощью обыкновенной строки с путем,
следует использовать следующую последовательность, чтобы получить строку, подходящую для использования
в качестве drivespec:
function ShowFreeSpace(drvPath)
{
var fso, d, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Диск " + drvPath.toUpperCase( ) + " - ";
s += d.VolumeName + "<br>";
s += "Свободного пространства: " + d.FreeSpace/1024 + " Kbytes";
return(s);
}
GetDriveName (метод)
Описание
Возвращает строку, содержащую имя диска по указанному пути.
Синтаксис
object.GetDriveName(path)
Синтаксис метода GetDriveName имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Вегда имя объекта FileSystemObject.
path
Обязателен. Указание пути к компоненте, имя диска которой должно быть возвращено.
Замечание
Метод GetDriveName возвращает строку нулевой длины (""),
если диск не может быть определен.
Памятка Метод GetDriveName работает только с указанным путем path.
Он не пытается ни изменить путь, ни проверить, существует ли данный путь.
Пример
function GetDriveLetter(path)
{
var fso, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
s += fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(path)));
return(s);
}
GetExtensionName (метод)
Описание
Возвращает строку, содержащую расширение для последней компоненты в пути.
Синтаксис
object.GetExtensionName(path)
Синтаксис метода GetExtensionName имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
path
Обязателен. Путь к компоненте, чье расширение должно быть возвращено.
Замечание
Для сетевых дисков, корневой каталог (\) считается компонентой.
Метод GetExtensionName возвращет строку нулевой длины (""), если ни одна компонента не совпадает с аргументом path.
function ShowExtensionName(filespec)
{
var fso, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
s += fso.GetExtensionName(filespec);
return(s);
}
GetFile (метод)
Описание
Возвращает объект File соответствующий файлу по указанному пути.
Синтаксис
object.GetFile(filespec)
Синтаксис метода GetFile имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
filespec
Обязателен. filespec - это путь (абсолютный или относительный) к указанному файлу.
Замечание
Возникает ошибка, если указанный файл не существует.
Пример
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Path.toUpperCase() + "<br>";
s += "Создан: " + f.DateCreated + "<br>";
s += "Просматривался: " + f.DateLastAccessed + "<br>";
s += "Модифицировался: " + f.DateLastModified
return(s);
}
GetFile (метод)
Описание
Возвращает последнее имя файла или папки по указанному пути который не является спецификацией диска.
Синтаксис
object.GetFileName(pathspec)
Синтаксис метода GetFileName имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
pathspec
Обязателен. Путь (абсолютный или относительный) к указанному файлу.
Замечание
Метод GetFileName возвращает строку нулевой длины (""), если Аргумент pathspec не заканчивается указанной компонентой.
Памятка Метод GetFileName
работает только по указанному пути. Он не пытается ни изменить путь, ни проверить, существует ли данный путь.
Пример
function ShowFileName(filespec)
{
var fso, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
s += fso.GetFileName(filespec);
return(s);
}
GetFile (метод)
Описание
Возвращает объект Folder соответствующий папке по указанному пути.
Синтаксис
object.GetFolder(folderspec)
Синтаксис метода GetFolder имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
folderspec
Обязателен. folderspec - это путь (абсолютный или относительный) к указанной папке.
Замечание
Возникает ошибка, если указанная папка не существует.
Пример
function ShowFolderList(folderspec)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.SubFolders);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "<br>";
}
return(s);
}
GetParentFolderName (метод)
Описание
Возвращает строку, содержащую имя корневого каталога последнего файла или папки указанных в пути.
Синтаксис
object.GetParentFolderName(path)
Синтаксис метода GetParentFolderName имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
path
Обязателен. Путь к компоненте, корневой каталог которой должен быть возвращен.
Замечание
Метод GetParentFolderName возвращает строку нулевой длины (""), если для указанной компоненты нет корневого каталога.
Памятка Метод GetParentFolderName работает только по указанному пути. Он не пытается ни изменить путь, ни проверить, существует ли данный путь.
Пример
function ShowParentFolderName(filespec)
{
var fso, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
s += fso.GetParentFolderName(filespec);
return(s);
}
GetSpecialFolder (метод)
Описание
Возвращает объект указанной специальной папки.
Синтаксис
object.GetSpecialFolder(folderspec)
Синтаксис метода GetSpecialFolder имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
folderspec
Обязателен. Имя специальной папки, которая должна быть возвращена.
Может быть любой из констант, перечисленных ниже в установках.
Установки
Аргумент folderspec может иметь любое из следующих значений:
Константа
Значение
Описание
WindowsFolder
0
Папка Windows содержит файлы, установленные операционной системой Windows.
SystemFolder
1
Папка System содержит библиотеки, шрифты, и драйверы устройств.
TemporaryFolder
2
Папка Temp используется для хранения временных файлов. Ее путь находится в переменной окружения TMP.
Пример
var fso, tempfile;
fso = new ActiveXObject("Scripting.FileSystemObject");
function CreateTempFile()
{
var tfolder, tfile, tname, fname, TemporaryFolder = 2;
tfolder = fso.GetSpecialFolder(TemporaryFolder);
tname = fso.GetTempName();
tfile = tfolder.CreateTextFile(tname);
return(tfile);
}
tempfile = CreateTempFile();
tempfile.writeline("Hello World");
tempfile.close();
GetTempName (метод)
Описание
Возвращает случайно сгенерированное имя временного файла или папки, который полезен для выполнения операций, требующих временного файла или папки.
Синтаксис
object.GetTempName ( );
object всегда имя объекта FileSystemObject.
Замечание
Метод GetTempName не создает файл. Он обеспечивает только имя временного файла, которое может быть использовано с CreateTextFile для создания файла.
Пример
var fso, tempfile;
fso = new ActiveXObject("Scripting.FileSystemObject");
function CreateTempFile()
{
var tfolder, tfile, tname, fname, TemporaryFolder = 2;
tfolder = fso.GetSpecialFolder(TemporaryFolder);
tname = fso.GetTempName();
tfile = tfolder.CreateTextFile(tname);
return(tfile);
}
tempfile = CreateTempFile();
tempfile.writeline("Hello World");
tempfile.close();
IsReady (свойство)
Описание
Возвращает True, если указанный диск готов к работе; False, если нет.
Синтаксис
object.IsReady
object всегда объект Drive.
Замечание
Для устройств со сменным носителем и приводов CD-ROM, IsReady возвращает True только если носитель находится в устройстве и готов к доступу.
Пример
function ShowDriveInfo(drvpath)
{
var fso, d, s, t;
fso = new ActiveXObject("Scripting.FileSystemObject")
d = fso.GetDrive(drvpath)
switch (d.DriveType)
{
case 0: t = "Неизвестный"; break;
case 1: t = "Сменный"; break;
case 2: t = "Жесткий"; break;
case 3: t = "Сетевой"; break;
case 4: t = "CD-ROM"; break;
case 5: t = "Виртуальный RAM-диск"; break;
}
s = "Диск " + d.DriveLetter + ": - " + t;
if (d.IsReady)
s += "<br>" + "Диск готов.";
else
s += "<br>" + "Диск не готов.";
return(s);
}
IsRootFolder (свойство)
Описание
Возвращает True, если указанная папка является корневой; False, если нет.
Синтаксис
object.IsRootFolder
object всегда объект Folder.
Пример
function DisplayLevelDepth(pathspec)
{
var fso, f, n, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(pathspec);
n = 0;
if (f.IsRootFolder)
s = "Указанный каталог является корневым."
else
{
do
{
f = f.ParentFolder;
n++;
}
while (!f.IsRootFolder)
s = "Глубина данного каталога " + n + " уровней."
}
return(s);
}
Line (свойство)
Описание
Возвращает текущий номер строки в файле TextStream.
Синтаксис
object.Line
object всегда имя объекта TextStream.
Замечание
После того как файл первоначально открыт, и до того как в него что-либо записано,
Line равен 1.
Пример
function GetLine()
{
var fso, f, r
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\textfile.txt", ForWriting, true)
f.WriteLine("Hello world!");
f.WriteLine("JScript is fun");
f.Close();
f = fso.OpenTextFile("c:\\textfile.txt", ForReading);
r = f.ReadAll();
return(f.Line);
}
Move (метод)
Описание
Переносит указанный файл или папку из одного местоположения в другое.
Синтаксис
object.Move( destination);
Синтаксис метода Move имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объектов File или Folder.
destination
Обязателен. Место назначения, куда должен быть перенесен файл или папка.
Использование масок не допустимо.
Замечание
Результат метода Move на объект File или Folder идентичен результату метода FileSystemObject.MoveFile или FileSystemObject.MoveFolder.
Однако следует помнить, что альтернативные методы способны перемещать несколько файлов или каталогов.
MoveFile (метод)
Описание
Переносит один или несколько файлов из одного местоположения в другое.
Синтаксис
object.MoveFile (source, destination);
Синтаксис метода MoveFile имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
source
Обязателен. Путь к файлу или файлам, которые должны быть перенесены.
Аргумент source может содержать маски только в последней компоненте пути.
destination
Обязателен. Путь, куда переносится файл или файлы. Аргумент destination
не может содержать масок.
Замечание
Если source содержит маски или destination оканчивается символом разделителем пути(\), считается, что destination определяет существующий каталог, в который надо перенести совпадающие с шаблоном файлы. Иначе, destination считается именем файла, который нужно создать. В других случаях, при переносе одного файла могут случиться три ситуации:
Если destination не существует, файл переносится. Это обычный случай.
Если destination - существующий файл, возникает ошибка.
Если destination - каталог, возникает ошибка.
Ошибка также возникает, если маска, используемая в source не совпадает ни с одним файлом.
Метод MoveFile останавливается при первой ошибке. Не делается никаких попыток вернуться назад или отменить любые изменения сделанные перед возникновением ошибки.
Важно Метод позволяет переносить файлы между томами, только если это поддерживается операционной системой.
Пример
function MoveFile2Desktop(filespec)
{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.MoveFile(filespec, "c:\\windows\\desktop\\);
}
MoveFolder (метод)
Описание
Переносит один или несколько каталогов из одного местоположения в другое.
Синтаксис
object.MoveFolder (source, destination);
Синтаксис метода MoveFolder имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта FileSystemObject.
source
Обязателен. Путь к папке или папкам, которые должны быть перенесены.
Аргумент source может содержать маски только в последней компоненте пути.
destination
Обязателен. Путь, куда переносится папка или папки. Аргумент destination
не может содержать масок.
Замечание
Если source содержит маски или destination оканчивается символом разделителем пути(\), считается, что destination определяет существующий каталог, в который надо перенести совпадающие с шаблоном папки. Иначе, destination считается именем папки, которую нужно создать. В других случаях, при переносе одного каталога могут случиться три ситуации:
Если destination не существует, каталог переносится. Это обычный случай.
Если destination - существующий файл, возникает ошибка.
Если destination - каталог, возникает ошибка.
Ошибка также возникает, если маска, используемая в source не совпадает ни с одним каталогом.
Метод MoveFolder останавливается при первой ошибке. Не делается никаких попыток вернуться назад или отменить любые изменения сделанные перед возникновением ошибки.
Важно Метод позволяет переносить папки между томами, только если это поддерживается операционной системой.
Пример
function MoveFldr2Desktop(fldrspec)
{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.MoveFolder(fldrspec, "c:\\windows\\desktop\\");
}
}
MoveFolder (метод)
Описание
Устанавливает или возвращает имя указанного файла или папки. Доступен для чтения/записи.
Синтаксис
object.Name [= newname]
Свойство Name имеет следующие аргументы:
аргументы
Описание
object
Обязателен. Всегда имя объекта File или Folder.
newname
Необязателен. Если указан, newname - новое имя указанного объекта object.
Пример
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " на Диске " + f.Drive + "<br>";
s += "Создан: " + f.DateCreated + "<br>";
s += "Просмотрен: " + f.DateLastAccessed + "<br>";
s += "Модифицирован: " + f.DateLastModified;
return(s);
}
OpenAsTextStream (метод)
Описание
Открывает указанный файл и возвращает объект TextStream, который может быть использован для чтения из него, записи в него, или для дозаписи в файл.
Синтаксис
object.OpenAsTextStream([iomode, [format]])
Синтаксис метода OpenAsTextStream имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта File.
iomode
Необязателен. Отражает режим ввода/вывода. Может быть одним из трех констант: ForReading, ForWriting, или ForAppending.
format
Необязателен. Используется одно из трех Tristate значений, для отражения формата открываемого файла. Если пропущен, файл открывается как ASCII.
Установки
Аргумент iomode может иметь любое из следующих значений:
Константа
Значение
Описание
ForReading
1
Открытие файла только для чтения. Нельзя писать в данный файл.
ForWriting
2
Открытие файла для записи. Если файл с указанным именем уже существует, его содержимое перезаписывается.
ForAppending
8
Открытие файла и дозапись в его конец.
Аргумент format может иметь любое из следующих значений:
Константа
Значение
Описание
TristateUseDefault
-2
Открывает файл в формате по умолчанию.
TristateTrue
-1
Открывает файл в формате Unicode.
TristateFalse
0
Открывает файл в формате ASCII.
Замечание
Метод OpenAsTextStream обеспечивает ту же функциональность, что и метод OpenTextFile из FileSystemObject.
Кроме того, метод OpenAsTextStream может быть использован для записи в файл.
Пример
function TextStreamTest( )
{
var fso, f, ts, s;
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile( "test1.txt" ); // Create a file.
f = fso.GetFile("test1.txt");
ts = f.OpenAsTextStream(ForWriting, TristateUseDefault);
ts.Write( "Hello World" );
ts.Close( );
ts = f.OpenAsTextStream(ForReading, TristateUseDefault);
s = ts.ReadLine( );
ts.Close( );
return(s);
}
OpenTextFile (метод)
Описание
Открывает указанный файл и возвращает объект TextStream, который может быть использован для чтения из него, записи в него, или для дозаписи в файл.
Необязателен. Отражает режим ввода/вывода. Может быть одним из трех констант: ForReading, ForWriting, или ForAppending.
create
Необязателен. Логическое значение, отражающее, будет ли создаваться новый файл, если указанный в filename файл не существует. Значение True если будет создаваться, False - если нет. Если пропущен, новый файл не создается.
format
Необязателен. Используется одно из трех Tristate значений, для отражения формата открываемого файла. Если пропущен, файл открывается как ASCII.
Установки
Аргумент iomode может иметь любое из следующих значений:
Константа
Значение
Описание
ForReading
1
Открытие файла только для чтения. Нельзя писать в данный файл.
ForWriting
2
Открытие файла для записи. Если файл с указанным именем уже существует, его содержимое перезаписывается.
ForAppending
8
Открытие файла и дозапись в его конец.
Аргумент format может иметь любое из следующих значений:
Константа
Значение
Описание
TristateUseDefault
-2
Открывает файл в формате по умолчанию.
TristateTrue
-1
Открывает файл в формате Unicode.
TristateFalse
0
Открывает файл в формате ASCII.
Пример
var fs, a, ForAppending;
ForAppending = 8;
fs = new ActiveXObject("Scripting.FileSystemObject");
a = fs.OpenTextFile("c:\\testfile.txt", ForAppending, false);
...
a.Close();
ParentFolder (свойство)
Описание
Возвращает объект Folder корневого для указанного файла или папки каталога. Доступен только для чтения.
Синтаксис
object.ParentFolder
object всегда объект File или Folder.
Пример
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " in " + f.ParentFolder + "<br>";
s += "Создан: " + f.DateCreated + "<br>";
s += "Просмотрен: " + f.DateLastAccessed + "<br>";
s += "Модифицирован: " + f.DateLastModified;
return(s);
}
Path (свойство)
Описание
Возвращает путь для указанного файла, папки или диска.
Синтаксис
object.Path
object всегда объект File, Folder, или Drive.
Замечание
Для букв дисков, корневой каталог не включается. Например, путь к диску C - C:, а не C:\.
Пример
function ShowFileAccessInfo(filespec)
{
var fso, d, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Path.toUpperCase() + "<br>";
s += "Создан: " + f.DateCreated + "<br>";
s += "Просмотрен: " + f.DateLastAccessed + "<br>";
s += "Модифицирован: " + f.DateLastModified
return(s);
}
Read (метод)
Описание
Читает указанное количество символов из TextStream файла и возвращает результирующую строку.
Синтаксис
object.Read(characters)
Синтаксис метода Read имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя TextStream объекта.
characters
Обязателен. Количество символов, которые необходимо прочитать из файла.
Пример
function GetHeader()
{
var fso, f;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Header");
f.Write("1234567890987654321");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
return(f.Read(6));
}
ReadAll (метод)
Описание
Читает весь TextStream файл и возвращает результирующую строку.
Синтаксис
object.ReadAll( );
object всегда имя объекта TextStream.
Замечание
Для больших файлов, использование метода ReadAll приводит к трате ресурсов памяти.
Должна быть использована другая техника чтения из файла, такая как чтение построчно.
Пример
function GetEverything()
{
var fso, f;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Header");
f.Write("1234567890987654321");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
return(f.ReadAll());
}
ReadLine (метод)
Описание
Читает всю строку (но исключая символ новой строки) из файла TextStream и возвращает результирующую строку.
Синтаксис
object.ReadLine( )
object всегда имя объекта TextStream.
Пример
function GetLine()
{
var fso, f, r;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.WriteLine("Hello world!");
f.WriteLine("JScript is fun");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
r = f.ReadLine();
return(r);
}
RootFolder (свойство)
Описание
Возвращает объект Folder представляющий корневой каталог указанного диска. Доступен только для чтения.
Синтаксис
object.RootFolder
object всегда объект Drive.
Замечание
Ко всем папкам и файлам на диске можно получить доступ используя возвращаемый объект Folder.
Пример
function GetRootFolder(drv)
{
var fso,d;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.DriveExists(drv))
{
d = fso.GetDrive(drv);
return(d.RootFolder);
}
else
return(false);
}
SerialNumber (свойство)
Описание
Возвращает десятичный серийный номер, используемый для уникальной идентификации тома диска.
Синтаксис
object.SerialNumber
object всегда объект Drive.
Замечание
Можно использовать свойство SerialNumber для удостоверения, что в устройство со сменными носителями вставлен нужный диск.
Пример
function ShowDriveInfo(drvpath)
{
var fso, d, s, t;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)));
switch (d.DriveType)
{
case 0: t = "Неизвестный"; break;
case 1: t = "Сменный"; break;
case 2: t = "Жесткий"; break;
case 3: t = "Сетевой"; break;
case 4: t = "CD-ROM"; break;
case 5: t = "Виртуальный RAM диск"; break;
}
s = "Диск " + d.DriveLetter + ": - " + t;
s += "<br>" + "SN: " + d.SerialNumber;
return(s);
}
ShareName (свойство)
Описание
Возвращает сетевое имя ресурса для указанного диска.
Синтаксис
object.ShareName
object всегда объект Drive.
Замечание
Если object не является сетевым диском, свойство ShareName возвращает строку нулевой длины ("").
Пример
function ShowDriveInfo(drvpath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)));
s = "Диск " + d.DriveLetter + ": - " + d.ShareName;
return(s);
}
ShortName (свойство)
Описание
Возвращает короткое имя, используемое программами которые требуют раннего 8.3 соглашения об именах файлов.
Синтаксис
object.ShortName
object всегда объект File или Folder.
Пример
function ShowShortName(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = "Короткое имя для " + "" + f.Name;
s += "" + "<br>";
s += ": " + "" + f.ShortName + "";
return(s);
}
ShortPath (свойство)
Описание
Возвращает короткий путь, используемый программами которые требуют раннего 8.3 соглашения об именах файлов.
Синтаксис
object.ShortPath
object всегда объект File или Folder.
Пример
function ShowShortPath(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = "Короткий путь для " + "" + f.Name;
s += "" + " ";
s += ": " + "" + f.ShortPath + "";
return(s);
}
Size (свойство)
Описание
Для файлов, возвращает размер в байтах, указанного файла. Для каталогов, возвращает размер в байтах всех файлов и подкаталогов заданной папки.
Синтаксис
object.Size
object всегда объект File или Folder.
Пример
function ShowFolderSize(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(filespec);
s = f.Name + " занимает " + f.size + " байт.";
return(s);
}
Skip (метод)
Описание
Пропускает указанное количество символов во время чтения TextStream файла.
Синтаксис
object.Skip(characters)
Синтаксис метода Skip имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта TextStream.
characters
Обязателен. Количество символов, которые нужно пропустить во время чтения файла.
Замечание
Пропущенные символы не запоминаются.
Пример
function SkipDemo()
{
var fso, f, r;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.WriteLine("Hello world!");
f.WriteLine("JScript is fun");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
f.Skip(6);
r = f.ReadLine();
return(r);
}
SkipLine (метод)
Описание
Пропускает следующую строку во время чтения TextStream файла.
Синтаксис
object.SkipLine( )
object всегда имя объекта TextStream.
Пример
function SkipLineDemo()
{
var fso, f, r
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
f.WriteLine("Hello world!");
f.WriteLine("JScript is fun");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
f.SkipLine();
r = f.ReadLine();
return(r);
}
SubFolders (свойство)
Описание
Возвращает коллекцию Folders, содержащую все папки, содержащиеся в указанной папке, включая папки с атрибутами "скрытый" и "системный".
Синтаксис
object.SubFolders
object всегда объект Folder.
Пример
function ShowFolderList(folderspec)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.SubFolders);
s = "";
for (;!fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "<br>";
}
return(s);
}
TextStream (объект)
Описание
Облегчает последовательный доступ к файлу.
Синтаксис
TextStream.{property | method( )}
Аргументы property и method могут быть любыми свойствами и методами, поддерживаемыми объектом TextStream.
Следует помнить, что фактическое использование TextStream заменяется переменной, представляющей TextStream объект, возвращаемый FileSystemObject.
В примере, a - это объект TextStream, возвращаемый методом
CreateTextFile из FileSystemObject.
WriteLine и Close два метода объекта TextStream.
Пример
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
TotalSize (свойство)
Описание
Возвращает размер, в байтах, диска или сетевого ресурса.
Синтаксис
object.TotalSize
object всегда объект Drive.
Пример
function SpaceReport(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Диск " + drvPath + " - ";
s += d.VolumeName + "<br>";
s += "Всего места: "+ d.TotalSize/1024 + " Kb <br>";
s += "Свободно: " + d.FreeSpace/1024 + " Kb";
return(s);
}
Type (свойство)
Описание
Возвращает информацию о типе файла или папки. Например, для файлов с расширением .TXT, возвращается "Text Document".
Синтаксис
object.Type
object всегда объект File или Folder.
Пример
function ShowFileType(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FolderExists(filespec))
f = fso.GetFolder(filespec);
else if (fso.FileExists(filespec))
f = fso.GetFile(filespec);
else
s = "Файл или папка не существуют.";
s = f.Name + " это " + f.Type;
return(s);
}
VolumeName (свойство)
Описание
Устанавливает или возвращает имя тома указанного диска. Доступен для чтения/записи.
Синтаксис
object.VolumeName [= newname]
Свойство VolumeName имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта Drive.
newname
Необязателен. Если указан, newname это новое имя указанного объекта object.
Пример
function SpaceReport(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Диск " + drvPath + " - ";
s += d.VolumeName + "<br>";
s += "Всего места: "+ d.TotalSize/1024 + " Kb <br>";
s += "Свободно: " + d.FreeSpace/1024 + " Kb";
return(s);
}
Write (метод)
Описание
Записывает указанную строку в файл TextStream.
Синтаксис
object.Write(string)
Синтаксис метода Write имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта TextStream.
string
Обязателен. Записываемая в файл строка.
Замечание
Указанные строки записываются в файл без пробелов или каких-либо символов между строками.
Следует использовать метод WriteLine для записи символа новой строки или строки с сиволом новой строки на конце.
Пример
function WriteDemo()
{
var fso, f, r
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
f.Write("Hello world!");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
r = f.ReadLine();
return(r);
}
WriteBlankLines (метод)
Описание
Записывает указанное количество символов новой строки в TextStream файл.
Синтаксис
object.WriteBlankLines(lines)
Синтаксис метода WriteBlankLines имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта TextStream.
lines
Обязателен. Количество символов новой строки, которые необходимо записать.
Пример
function WriteBlanksDemo()
{
var fso, f, r;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Hello world!");
f.WriteBlankLines(2);
f.Write("JScript is fun!");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
r = f.ReadAll();
return(r);
}
WriteLine (метод)
Описание
Записывает указанную строку и символ новой строки в файл TextStream.
Синтаксис
object.WriteLine(string)
Синтаксис метода WriteLine имеет следующие аргументы:
Аргумент
Описание
object
Обязателен. Всегда имя объекта TextStream.
string
Обязателен. Записываемая в файл строка.
Пример
function WriteLnDemo()
{
var fso, f, r
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
f.WriteLine("Hello world!");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
r = f.ReadLine();
return(r);
}
Напрямую не используется. Доступ осуществляется
через свойство WshShell.Folder
Свойство Environment
Свойство Environment возвращает объект WshEnvironment. Синтаксис:
WshShell.Environment ([strType]) = objWshEnvironment Замечания
Если strType определяет, где постоянно находится переменная окружения,
возможные значения "System", "User",
"Volatile", и "Process".
Если strType не
указан, этот метод получает системные переменные в Windows NT или системные
переменные процесса в Windows 95.
Для Windows 95 поддерживается только "Process"
в качестве параметра strType.
Следующие переменные предоставляются операционной системой Windows. Скрипты
могут также получить переменные окружения, которые были установлены другими
прикладными программами.
Название
Описание
NUMBER_OF_PROCESSORS
Число процессоров, используемых в компьютере.
PROCESSOR_ARCHITECTURE
Тип процессора автоматизированного рабочего места пользователя.
PROCESSOR_IDENTIFIER
Идентификатор процессора автоматизированного рабочего места пользователя.
PROCESSOR_LEVEL
Уровень процессора автоматизированного рабочего места пользователя.
PROCESSOR_REVISION
Версия процессора автоматизированного рабочего места пользователя.
OS
Операционная система на автоматизированном рабочем месте пользователя.
COMSPEC
Выполнимая программа для команды command prompt (обычно cmd.exe).
HOMEDRIVE
Первичный локальный диск (обычно диск C).
HOMEPATH
Основной каталог для пользователей по умолчанию (для Windows NT это - обычно \users\default.
PATH
Переменная окружения PATH.
PATHEXT
Расширения для исполняемых файлов (обычно .com, .exe, .bat, или .cmd).
PROMPT
Командная строка (обычно $P$G).
SYSTEMDRIVE
Локальный диск, на котором находится системный каталог (например, c:\).
SYSTEMROOT
Каталог ОС (например, c:\winnt). Аналогичен WINDIR.
WINDIR
Каталог ОС (например, c:\winnt). Аналогичен SYSTEMROOT.
TEMP
Каталог для хранения временных файлов (например, c:\temp). User, Volatile
TMP
Каталог для хранения временных файлов (например, c:\temp). User, Volatile
Свойство SpecialFolders позволяет объекту WshSpecialFolders получить доступ
к таким папкам Windows как: Папка рабочего стола, Папка меню Пуск, Папка личных документов.
Метод ExpandEnvironmentStrings расширяет переменную окружения
PROCESS, содержащуюся в strString и возвращает результирующую строку. Переменные
заключены между символами %
Имя переменной окружения не чувствительно к регистру.
Пример:
MsgBox "Prompt is " & WshShell.ExpandEnviromentStrings("%PROMPT%")
Свойство Item устанавливает или возвращает значение
переменной окружения strName. Это свойство - используется по умолчанию.
Примеры на VBScript:
'Получить значение переменной окружения NUMBER_OF_PROCESSORS
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set WshSysEnv = WshShell.Environment("SYSTEM")
Wscript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")
' Установить переменной окружения EXAMPLE значение A_VALUE
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set WshEnv = WshShell.Environment("VOLATILE")
WshEnv("EXAMPLE")= "A_VALUE"
' Отобразить весь список системных переменных окружения
Set WshShell = Wscript.CreateObject("Wscript.Shell")
For Each strVarName In WshShell.Environment("SYSTEM")
MsgBox strVarName
Next
Свойство length предоставляет количество перечисленных элементов.
Это свойство обеспечивает ту же функциональность, что и Count
и введено только для совместимости с JScript
Метод Remove
Синтаксис:
WshEnvironment.Remove(strName)
Метод Remove удаляет переменную окружения, определяемую strName
Примеры на VBScript:
' Удаляет переменную окружения EXAMPLE
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Environment("VOLATILE").Remove("EXAMPLE")
' Удаляет несколько переменных
Set WshUsrEnv = Wscript.Environment("User")
WshUsrEnv.Remove("EXAMPLE_1")
WshUsrEnv.Remove("EXAMPLE_2")
WshUsrEnv.Remove("EXAMPLE_3")
WshUsrEnv.Remove("EXAMPLE_4")
Синтаксис:
WshShell.SpecialFolders.Item("strFolderName") = strFolderPath
WshShell.SpecialFolders("strFolderName") = strFolderPath
Свойство Item возвращает полный путь к специальной папке,
определяемой strFolderName Замечания
WshShell.SpecialFolders("strFolderName") возвращает NULL,
если запрашиваемая папка strFolderName не доступна. Например, Windows95
не имеет папки AllUsersDesktop, и возвращает NULL, если strFolderName=AllUsersDesktop.
Следующие специальные папки существуют в операционных системах Windows95 и
WindowsNT 4.0:
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates
Пример:
' Этот фрагмент возвращает полный путь к папке рабочего стола Windows
Set WshShell = Wscript.CreateObject("Wscript.Shell")
StrMyDesktop = WshShell.SpecialFolders("Desktop")
' Перечислить все специальные папки
For Each strFolder In WshShell.SpecialFolders
MsgBox strFolder
Next
Свойство length предоставляет количество перечисленных элементов.
Это свойство обеспечивает ту же функциональность, что и Count
и введено только для совместимости с JScript
Метод Run создает новый процесс и выполняет strCommand в окне,
имеющем стиль intWindowStyle
Параметры:
strCommand
Переменные окружения в границах strCommand
расширяются автоматически
intWindowStyle
Это значение, в которое устанавливается wShowWindow - элемент структуры STARTUPINFO
для нового процесса. Может принимать следующие значения:
Название
Величина
Значение
SW_HIDE
0
Прячет окно и активирует другое окно
SW_MINIMIZE
6
Минимизирует указанное окно и активирует следующее окно верхнего
уровня в Z порядке
SW_RESTORE
9
Активирует и показывает окно. Если окно минимизировано или максимизировано,
Windows восстанавливает его первоначальный размер и положение. Приложение должно
задать этот флаг, если восстанавливается минимизированное окно.
SW_SHOW
5
Активизирует и показывает окно с его текущими положением и размерами
SW_SHOWMAXIMIZED
3
Активизирует окно и показывает его максимизированным
SW_SHOWMINIMIZED
2
Активизирует окно и показывает его минимизированным
SW_SHOWMINNOACTIVE
7
Показывает окно минимизированным. Активное окно остается активным
SW_SHOWNA
8
показывает окно в его текущем состоянии. Активное окно остается активным
SW_SHOWNOACTIVATE
4
Показывает окно с его последними размерами и положением. Активное окно остается активным
SW_SHOWNORMAL
1
Активизирует и показывает окно. Если оно было минимизировано или
максимизировано, Windows восстанавливает его первоначальные размер и положение
blnWaitOnReturn
Если blnWaitOnReturn не задан или равен FALSE, метод немедленно возвращается для
продолжения выполнения скрипта, не ожидая завершения выполнения процесса.
Если blnWaitOnReturn установлен в TRUE, метод Run возвращает любой код
ошибки, переданный приложением.
Если blnWaitOnReturn не задан или равен FALSE, метод Run
возвращает код ошибки 0
Пример:
' Этот фрагмент запускает NotePad во время выполнения скрипта.
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run ("notepad " & Wscript.ScriptFullName)
WshShell.Run ("%windir%\notepad" & Wscript.ScriptFullName)
' Этот фрагмент возвращает код ошибки выполненного приложения
Return = WshShell.Run("notepad " & Wscript.ScriptFullName, 1, TRUE)
Метод Exec
Выполняет приложение в дочерней коммандной оболочке, обеспечивая доступ к
потокам StdIn/StdOut/StdErr. Синтаксис:
WshShell.Exec(strCommand) Параметры:
strCommand
строковое значение, отражающее командную строку, используемую для запуска скрипта.
Командная строка должна быть в точности такой, как если бы задавалась в строке
приглашения.
Замечание:
Метод Exec возвращает объект WshScriptExec (обеспечивающий статус и информацию об
ошибке скрипта, выполняемого с помощью Exec, одновременно с доступом к каналам
StdIn, StdOut, и StdErr). Метод Exec позволяет выполнять только приложения, вызываемые
командной строкой. Метод Exec не может быть использован для выполнения удаленных скриптов.
Не следует путать метод Exec с методом Execute (объект WshRemote).
Пример:
//Данный пример демонстрирует, как метод Exec
выполняется из скрипта командной строки
var aJob = WshShell.Exec("%comspec% /c myScript.js");
Метод AddWindowsPrinterConnection добавляет основанное на Windows связывание с принтером
Параметры:
strPrinterPath
строка, определяющая путь к присоединяемому принтеру
strDriverName
строка, определяющая имя драйвера (игнорируется при использовании WindowsNT/2000)
strPort
Необязательный параметр. Строка, определяющая порт принтера для установления связи
(игнорируется при использовании WindowsNT/2000).
Замечания:
Использование этого метода похоже на использование опции Printer в панели
управления для добавления принтера. В отличие от метода AddPrinterConnection,
этот метод позволяет создать принтерное соединение без указания порта (например LPT1)
Если соединение не удается, посылается сообщение об ошибке. В Windows 9x/ME драйвер
принтера уже должен быть установлен на компьютере, использующем метод AddPrinterConnection.
Если драйвер не установлен, Windows выдаст сообщение об ошибке. Пример:
//Данный пример присоединяет сетевой принтер в среде Windows 9x/ME
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set PrinterPath = "\\printserv\DefaultPrinter"
Set PrinterDriver = "Lexmark Optra S 1650"
WshNetwork.AddWindowsPrinterConnection(PrinterPath, PrinterDriver)
Метод AddPrinterConnection
Синтаксис:
WshNetwork.AddPrinterConnection strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword]
Метод AddPrinterConnection связывает удаленный принтер определяемый
strRemoteName с локальным именем ресурса strLocalName
Параметры:
strLocalName
локальный ресурс, с которым происходит связывание
strRemoteName
удаленный принтер, с которым происходит связывание
bUpdateProfile
Если bUpdateProfile поддерживается, и его значение TRUE, это связывание
сохраняется в профиле пользователя
strUser
Если вы связываете удаленный принтер, используя параметры, отличные
от параметров текущего пользователя, можно указать strUser и strPassword
strPassword
Если вы связываете удаленный принтер, используя параметры, отличные
от параметров текущего пользователя, можно указать strUser и strPassword
Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
WshNetwork.AddPrinterConnection "LPT1", "\\Server\Print1"
Метод EnumNetworkDrives
Метод EnumNetworkDrives возвращает текущую схему сетевых дисков
в виде объекта Коллекция. Элементы коллекции - локальные и удаленные имена.
Синтаксис:
WshNetwork.EnumNetworkDrive = objWshCollection
Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
Wscript.Echo oDrives.Item(0) = "Z:"
Wscript.Echo oDrives.Item(1) = "\\Server\Share"
Метод EnumPrinterConnections
Метод EnumPrinterConnections возвращает текущую схему сетевых принтеров
в виде объекта Коллекция. Элементы коллекции - локальные и удаленные имена.
Синтаксис:
WshNetwork.EnumPrinterConnections = objWshCollection
Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
Wscript.Echo oPrinters.Item(0) = "LPT1:"
Wscript.Echo oPrinters.Item(1) \\Server\Printer1"
Метод MapNetworkDrive
Синтаксис:
WshNetwork.MapNetworkDrive strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword]
Метод MapNetworkDriveУказывет общую точку, определяемую strRemoteName
для локального имени ресурса strLocalName
Параметры:
strLocalName
локальный ресурс, с которым происходит связывание
strRemoteName
удаленный ресурс, с которым происходит связывание
bUpdateProfile
Если bUpdateProfile поддерживается, и его значение TRUE, это связывание
сохраняется в профиле пользователя
strUser
Если вы связываете удаленный принтер, используя параметры, отличные
от параметров текущего пользователя, можно указать strUser и strPassword
strPassword
Если вы связываете удаленный принтер, используя параметры, отличные
от параметров текущего пользователя, можно указать strUser и strPassword
Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
WshNetwork.MapNetworkDrive "Z:", "\\Server\Share"
Метод RemoveNetworkDrive
Синтаксис:
WshNetwork.RemoveNetworkDrive strName, [bForce], [bUpdateProfile]
Метод RemoveNetworkDrive удаляет текущее соединение с сетевым диском,
указываемым в strName
Параметры:
strName
параметр strName может быть либо локальным либо удаленным именем,
в зависимости от того как расположен диск. Если диск расположен между
локальным именем (буква диска) и удаленным именем, тогда strName должен быть
установлен как локальное имя. Если путь к сети не имеет локальных имен (букв
дисков), тогда strName должен быть установлен как удаленное имя.
bForce
Если bForce поддерживается, и его значение TRUE, метод удаляет
соединение независимо от того, используется ресурс или нет
bUpdateProfile
Если bUpdateProfile поддерживается, и его значение TRUE, это связывание
сохраняется в профиле пользователя
Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
' Локальное имя связывается с удаленным ресурсом
WshNetwork.MapNetworkDrive "Z:", "\\Server\Share"
WshNetwork.RemoveNetworkDrive "Z:"
' Отсутствие связываний таких как:
' NET USE \\Server\ShareWshNetwork.RemoveNetworkDrive "\\Server\Share"
WshNetwork.MapNetworkDrive "\\Server\Share"
WshNetwork.RemoveNetworkDrive "\\Server\Share"
Метод RemovePrinterConnection
Синтаксис:
WshNetwork.RemovePrinterConnection strName, [bForce], [bUpdateProfile]
Метод RemovePrinterConnection удаляет текущее соединение с сетевым принтером,
указываемым в strName
Параметры:
strName
параметр strName может быть либо локальным либо удаленным именем,
в зависимости от того подключен диск. Если принтер расположен между
локальным именем (например LPT1) и удаленным именем, тогда strName должен быть
установлен как локальное имя. Если путь к сети не имеет локальных имен (букв
дисков), тогда strName должен быть установлен как удаленное имя.
bForce
Если bForce поддерживается, и его значение TRUE, метод удаляет
соединение независимо от того, используется ресурс или нет
bUpdateProfile
Если bUpdateProfile поддерживается, и его значение TRUE, это связывание
сохраняется в профиле пользователя
Пример:
Set WshNetwork = Wscript.CreateObject("Wscript.Network")
' локальное имя связано с удаленным ресурсом
WshNetwork.RemovePrinterConnection "LPT1:"
' Нет связывания с локальным именем. Например NET USE "\\Server\Printer1"
WshNetwork.RemovePrinterConnection "\\Server\Printer1"
Метод SetDefaultPrinter
Синтаксис:
WshNetwork.SetDefaultPrinter=strPrinterName
Метод SetDefaultPrinter связывает устройство печати по умолчанию
с сетевым принтером, указанным в strPrinterName
Параметры:
strPrinterName
Имя удаленного принтера для установки печатающего устройства по умолчаннию,
например "\\Server\Printer1". Следует помнить, что strPrinterName не может
быть локальным именем, таким как "LPT1:"
Создание ярлыков
Метод CreateShortcut
Метод CreateShortcut создает объект WshShortcut и
возвращает его. Если заголовок ярлыка оканчивается на .url - создается
объект WshURLShortcut Синтаксис:
WshShell.CreateShortcut(strPathname) = objShortcut
Пример:
' Этот фрагмент кода создает ярлык
' к выполняющемуся в данный момент скрипту
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set oShellLink = WshShell.CreateShortcut("Current Script.lnk")
oShellLink.TargetPath = Wscript.ScriptFullName
oShellLink.Save
Set oUrlLink = WshShell.CreateShortcut("Microsoft Web Site.URL")
oUrlLink.TargetPath = "http://www.microsoft.com"
oUrlLink.Save
Свойство Arguments обеспечивает параметры для объекта ярлыка Синтаксис:
WshShortcut.Arguments = strArguments
Свойство Description
Свойство Description обеспечивает описание для объекта ярлыка Синтаксис:
WshShortcut.Description = strDescription
Свойство Hotkey
Свойство Hotkey обеспечивает горячие клавиши для объекта ярлыка.
Горячая клавиша - это комбинация клавиш клавиатуры, которая обеспечивает
быстрый запуск или переключение на данное приложение. Синтаксис:
WshShortcut.HotKey = strHotKey
Замечания:
Строка strHotKey формируется по следующему образцу:
Hotkey     ::= modifier* keyname
modifier    ::= "ALT+" | "CTRL+" | "SHIFT+" | "EXT+"
keyname  ::= "A" .. "Z" |"0".. "9" |"Back" | "Tab" | "Clear" | "Return" |
"Escape" | "Space" | "Prior" | ...
Полные имена клавиш могут быть найдены в файле WINUSER.H. Горячие клавиши
не чувствительны к регистру.
Горячие клавиши могут активизировать ярлыки, находящиеся только на рабочем
столе Windows или в меню Пуск.
Windows Explorer не воспринимает клавиши ESC, ENTER, TAB, SPACE, PRINT SCREEN, BACKSPACE
,несмотря на WshShortcut. Данные клавиши могут указываться как горячие только
в согласовании с Win32 API. Однако рекоммендуется не использовать их в ярлыках.
Пример:
Свойство IconLocation обеспечивает путь к иконке для объекта ярлыка. Формат
пути должен быть "Путь, индекс" Синтаксис:
WshShortcut.IconLocation = strIconLocation
Свойство TargetPath
Свойство TargetPath обеспечивает путь к объектe ярлыка. Синтаксис:
WshShortcut.TargetPath = strTargetPath
Свойство WindowStyle
Свойство WindowStyle обеспечивает стиль окна объекта ярлыка. Синтаксис:
WshShortcut.WindowStyle = natWindowStyle
Свойство WorkingDirectory
Свойство WorkingDirectory обеспечивает рабочий каталог объекта ярлыка. Синтаксис:
WshShortcut.WorkingDirectory = strWorkingDirectory
Метод Save
Метод Save сохраняет объект ярлык по указанному в свойстве FullName пути. Синтаксис:
WshShortcut.Save
Устанавливает указанный ключ или значение в реестре
Метод RegDelete
Синтаксис:
WshShell.RegDelete strName
Метод RegDelete удаляет из реестра ключ или значение, указанное в strName
Параметры:
strName
Если strName заканчивается бэкслэшем (\), метод удаляет ключ вместо значения.
Параметр strName должен начинаться одним из следующих корневых имен ключей:
Short
Long
HKCU
HKEY_CURRENT_USER
HKLM
HKEY_LOCAL_MACHINE
HKCR
HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG
Пример:
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegDelete "HKCU\ScriptEngine\Value" ' Удалить значение "Value"
WshShell.RegDelete "HKCU\ScriptEngine\Key\" ' Удалить ключ "Key"
Метод RegRead
Синтаксис:
WshShell.RegRead(strName) = strValue
Метод RegRead возвращает из реестра ключ или значение, указанное в strName
Параметры:
strName
Если strName заканчивается бэкслэшем (\), метод удаляет ключ вместо значения.
Параметр strName должен начинаться одним из следующих корневых имен ключей:
Short
Long
HKCU
HKEY_CURRENT_USER
HKLM
HKEY_LOCAL_MACHINE
HKCR
HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG
Замечания:
Метод RegRead поддерживает только REG_SZ, REG_EXPAND_SZ, REG_DWORD, REG_BINARY, и REG_MULTI_SZ
типы данных. Если реестр содержит другие типы данных, RegRead возвращает DISP_E_TYPEMISMATCH
Пример:
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegRead "HKCU\ScriptEngine\Value" ' Получить значение "Value"
WshShell.RegRead "HKCU\ScriptEngine\Key\" ' Получить ключ "Key"
Метод RegWrite
Синтаксис:
WshShell.RegWrite strName, anyValue, [strType]
Метод RegWrite задает в реестре ключ или значение, указанное в strName
Параметры:
strName
Если strName заканчивается бэкслэшем (\), метод удаляет ключ вместо значения.
Параметр strName должен начинаться одним из следующих корневых имен ключей:
Short
Long
HKCU
HKEY_CURRENT_USER
HKLM
HKEY_LOCAL_MACHINE
HKCR
HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG
anyValue
Метод RegWrite автоматически конвертирует anyValue в строку, когда
strType задан как REG_SZ или REG_EXPAND_SZ. Если strType задан как REG_DWORD,
anyValue конвертируется в целое число.Если strType задан как REG_BINARY,
anyValue должно быть целым.
strType
Метод RegWrite поддерживает в качестве strType: REG_SZ, REG_EXPAND_SZ, REG_DWORD и REG_BINARY.
если в strType задан другой тип данных, RegWrite возвращает E_INVALIDARG.