Главная страница

Новости

Вопрос-ответ

Скрипты

ActiveX

Статьи

Книжная полка

Knowledge Base

Конференции

Ссылки

 

Гостевая книга

Напишите мне письмо

 

Подписка на рассылку

Рассылка 'Windows Scripting'  Архив

 

 

Лучше смотреть с Microsoft Internet Explorer 4.0 и выше

 

Создано с помощью UltraEdit

 

 

Windows Scripting (выпуск 1)

 
Вступление
 
Здравствуйте!

Рад приветствовать Вас на странице моей рассылки!

Эта рассылка посвящена самым различным аспектам программирования в среде Microsoft Windows Scripting - от конфигурирования и администрирования Microsoft Windows, IIS, Exchange Server и SQL Server до особенностей программирования на VBScript и JScript.

И не забудьте посетить сайт рассылки scripting.narod.ru, где имеется много другой полезной информации, посвященной Windows Script и не вошедшей в рассылку.

Буду также рад получить от Вас письмо с Вашими вопросами, пожеланиями, предложениями и замечаниями: scripting@narod.ru.

Настоятельная рекомендация тем, кто подписан на текстовую версию рассылки: ***Подпишитесь на 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
Как определить версию Microsoft Exchange Server 2000?
 
Разнообразную информацию об 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?
 
На настоящий момент мне известно три версии 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.

 
Скрипты
 
Открыть в браузере статью Microsoft Knowledge Base по ее номеру
 
В листинге 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

<job id="OpenKBase"> <script language="VBScript" src="kbase.vbs"/> <script language="VBScript"> Option Explicit Dim Number Number = InputBox( _ "Пожалуйста, введите номер статьи " & _ "Microsoft Knowledge Base." & _ vbNewLine & vbNewLine & _ "Примеры: 'Q185477', 'Q90904', '185477' или '90904'", _ WScript.ScriptName, "1") If Len(Number) = 0 Then WScript.Quit Dim Url Url = GetKBaseArticleUrl(Number) If Len(Url) = 0 Then MsgBox "Неправильный формат номера.", _ vbOkOnly + vbCritical, WScript.ScriptName WScript.Quit End If MsgBox Url, vbOkOnly + vbInformation, WScript.ScriptName Dim Shell Set Shell = CreateObject("WScript.Shell") Shell.Run Url Set Shell = Nothing </script> </job>

Листинг 3

<script language="VBScript" src="kbase.vbs"></script> <script language="JScript"> function OpenKBaseArticle() { var urlKBase = GetKBaseArticleUrl(kbase.article.value); if (0 == urlKBase.length) alert("Номер статьи введен неверно, " + "обратите внимание на примеры!"); else window.open(urlKBase, "_new"); } </script> <form name="kbase"> Пожалуйста, введите номер статьи Microsoft Knowledge Base:<br> <input name="article" size="10" maxlength="10" value=""> <input type="button" value="Открыть!" onClick="jscript:OpenKBaseArticle();"><br> Примеры: 'Q185477', 'Q90904', '185477' или '90904' </form>
Полезные ActiveX
 
Xceed Zip Compression Library
 

Кратко

Эта библиотека представляет собой набор 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.
  • Конференции - Список избранных телеконференций, посвященных скриптингу.
  • Ссылки - Список ссылок на сайты схожей тематики.
 
Обратная связь