|
|
Windows Scripting (выпуск 1)
|
|
|
Здравствуйте!
Рад приветствовать Вас на странице моей рассылки!
Эта рассылка посвящена самым различным аспектам программирования в среде Microsoft Windows Scripting - от конфигурирования и администрирования Microsoft Windows, IIS, Exchange Server и SQL Server до особенностей программирования на VBScript и JScript.
И не забудьте посетить сайт рассылки scripting.narod.ru, где имеется много другой полезной информации, посвященной Windows Script и не вошедшей в рассылку.
Буду также рад получить от Вас письмо с Вашими вопросами, пожеланиями, предложениями и замечаниями: [email protected].
Настоятельная рекомендация тем, кто подписан на текстовую версию рассылки: ***Подпишитесь на HTML-вариант***! Я подготавливаю только HTML-версию рассылки, а текстовая версия автоматически генерируется из нее на Subscribe.ru, причем не самым лучшим образом (:
Посмотрите на HTML-версию этой рассылки, которая находится здесь: http://scripting.narod.ru/issues/issue001.htm.
|
|
|
|
|
|
|
Это можно сделать через объект WshArguments, который, в свою очередь, можно получить через встроенный объект WScript.
Пример 1
В этом примере отображаются все параметры, переданные скрипту через командную строку:
Option Explicit
Dim S
Dim Args
Set Args = WScript.Arguments
S = Args.Count & " arguments." & vbNewLine
Dim I
For I = 0 to Args.Count - 1
S = S & I & ": " & Args(I) & vbNewLine
Next
Set Args = Nothing
MsgBox S
Пример 2
В этом примере скрипт проверяет наличие в своей командной строке одного обязательного параметра:
Option Explicit
If WScript.Arguments.Count <> 1 Then
MsgBox "Нет обязательного параметра или " & _
"параметров слишком много!", vbCritical
WScript.Quit
End If
MsgBox "Переданный параметр: " & WScript.Arguments(0), vbInformation
|
|
Разнообразную информацию об Exchange Server 2000 можно получить, используя интерфейс IExchangeServer из CDO for Exchange Management (CDOEXM):
Dim Exchange
Set Exchange = CreateObject("CDOEXM.ExchangeServer")
После того, как мы создали этот объект, необходимо связать его с Exchange Server:
Exchange.DataSource.Open ServerName
Поскольку компоненты CDO for Exchange Management могут работать только локально, то в качестве ServerName мы вполне можем подставить имя текущего компьютера.
Для этой цели мы будем использовать интерфейс IADsWinNTSystemInfo из ADSI:
Dim NtSysInfo
Set NtSysInfo = CreateObject("WinNTSystemInfo")
Dim ServerName
ServerName = NtSysInfo.ComputerName
Set NtSysInfo = Nothing
Полный листинг
Option Explicit
' Сначала определим имя Windows-сервера
Dim NtSysInfo
Set NtSysInfo = CreateObject("WinNTSystemInfo")
Dim ServerName
ServerName = NtSysInfo.ComputerName
Set NtSysInfo = Nothing
' Затем извлекаем информацию об Exchange-сервере
Dim Exchange
Set Exchange = CreateObject("CDOEXM.ExchangeServer")
Exchange.DataSource.Open ServerName
MsgBox "Microsoft Exchange Server, " & Exchange.ExchangeVersion & _
vbNewLine & vbNewLine & _
"6.0.4052.x - Beta 3 Build" & vbNewLine & _
"6.0.4208.x - RC 1 Build" & vbNewLine & _
"6.0.4368.x - RC 2 Build", _
vbOkOnly + vbInformation, Exchange.Name
Set Exchange = Nothing
|
|
|
На настоящий момент мне известно три версии Microsoft Exchange Server 2000:
Build 6.0.4052.x - Beta 3
Build 6.0.4208.x - Release Candidate 1
Build 6.0.4368.x - Release Candidate 2
Релиз Microsoft Exchange Server 2000 ожидается осенью 2000 года.
Последнюю информацию о версиях Exchange Server 2000 (и не только о нем) можно узнать, например, на сайте CDOLive.
|
|
|
|
В листинге 1 находится функция GetKBaseArticleUrl, которая по номеру статьи Microsoft Knowledge Base генерирует соответствующий ей URL.
В файле листинг 2 помещен скрипт, запрашивающий через диалог номер статьи и открывающий эту статью в браузере по умолчанию.
Запрос номера статьи можно сделать и на HTML-странице через форму.
Исходный текст формы и сопутствующего ей скрипта находится в листинге 3. Обратите внимание - скрипт на JScript с легкостью вызывает скриптовую функцию на VBScript.
Листинг 1: kbase.vbs
Option Explicit
Function GetKBaseArticleUrl(Number)
GetKBaseArticleUrl = ""
Number = UCase(Trim(Number))
If Left(Number, 1) <> "Q" Then Number = "Q" & Number
Dim NumberLen
NumberLen = Len(Number)
If (NumberLen <> 6) And (NumberLen <> 7) Then Exit Function
Const Digits = "0123456789"
Dim I
For I = 2 To NumberLen
If InStr(Digits, Mid(Number, I, 1)) = 0 Then Exit Function
Next
GetKBaseArticleUrl = _
"http://support.microsoft.com/support/kb/articles/" & _
Left(Number, NumberLen - 3) & "/" & _
Mid(Number, NumberLen - 2, 1) & "/" & _
Right(Number, 2) & ".asp"
End Function
Листинг 2
Листинг 3
|
|
|
Кратко
Эта библиотека представляет собой набор ActiveX и DLL, с помощью которых Вы сможете добавить функции архивации/разархивации в Ваши программы. Формат генерируемых файлов совместим с форматами PKZip и WinZip. Имеется полнофункциональная trial-версия без каких-либо ограничений.
Ссылки
Домашняя страница
Скачать trial-версию
Ограничение trial-версии состоит в том, что ее нельзя распространять вместе со своей программой.
Пример 1
В этом простом примере мы сархивируем все файлы, находящиеся в текущем каталоге:
Option Explicit
Dim XceedZip
Set XceedZip = CreateObject("XceedSoftware.XceedZip.4")
XceedZip.ZipFilename = "sample1.zip"
XceedZip.FilesToProcess = "*.*"
XceedZip.Zip
Set XceedZip = Nothing
Продолжение следует...
|
|
|
|
- Главная страница -
Главная страница сайта: scripting.narod.ru.
- Новости -
Новости мира Windows Scripting.
- Вопросы и ответы -
В этом разделе Вы можете найти ответы на часто задаваемые вопросы и задать свой.
- Скрипты -
Здесь содержатся исходные тексты скриптов, в основном на VBScript.
- ActiveX -
Аннотированный список ActiveX-компонент, которые могут быть полезными при написании скриптов.
- Книжная полка -
Избранные книги по тематике сайта.
- Knowledge Base -
Ссылки на избранные статьи из Microsoft Knowledge Base.
- Конференции -
Список избранных телеконференций, посвященных скриптингу.
- Ссылки -
Список ссылок на сайты схожей тематики.
|
|
|
|
|
|
|