Запуск сценариев с помощью
WSCRIPT.EXE
Двойной щелчок на значке сценария — самый быстрый способ его запуска, но такой метод не позволяет использовать аргументы. Когда сценарий не имеет визуального интерфейса, единственной возможностью воздействия на ход его выполнения является передача параметров. Для запуска сценария и передачи ему аргументов необходимо воспользоваться приложением WSCRIPT.EXE.
Для этого выберите в меню Start команду Run, которая открывает диалоговое окно запуска. Введите имя приложения WSCRIPT.EXE, а затем — имя запускаемого сценария. Например, FILEDTR.VBS из папки SCRIPTS на рабочем столе.
WSCRIPT С:\WINDOWS\DESKTOP\SCRIPTS\FILEDTR.VBS
Команда запускает программу WSCRIPT, которая запускает FILEDTR.VBS. Если путь содержит пробелы, то его необходимо заключить в двойные кавычки.
WSCRIPT "С:\WINDOWS\DESKTOP\SIMPLE SCRIPTS\FILEDTR.VBS"
Можно передавать и аргументы, отделив их от команды пробелами.
WSCRIPT С:\WINDOWS\DESKTOP\SCRIPTS\FILEDTR.VBS arg1 arg2
В данном случае используются два аргумента — arg1 и arg2.
Примечание
Множественные аргументы разделяются пробелом (или несколькими пробелами). Запятая воспринимается как часть аргумента.
Кроме среды запуска сценариев, WSCRIPT предоставляет доступ к нескольким возможностям оболочки Windows (к которым VBScript не имеет доступа). Можно рассматривать объекты WSCRIPT как расширение VBScript. Мы начнем с рассмотрения семейства Arguments, которое содержит аргументы, передаваемые сценарию. Далее мы научимся осуществлять доступ к аргументам сценария.
Примечание
Если необходимо передать большое количество аргументов (достаточно распространенная ситуация), то имеет смысл сохранить их в текстовом файле. Пользователю легче ввести дюжину имен файлов, подлежащих обработке, в текстовый файл. Не рассчитываете на то, что пользователь сценария введет длинное имя пути и сделает это правильно с первого раза.
Использование аргументов
Рассмотрим обработку аргументов в коде сценария. VBScript не может обрабатывать аргументы. Свойство Arguments объекта Wscript позволяет сценарию прочесть аргументы. Для этого необходимо создать экземпляр объекта следующим оператором.
Set Args = Wscript.Arguments
Переменная
Args - это семейство со свойствами Item и Count. Для обработки такого семейства можно использовать цикл For... Next
For i = 0 to Args.Count - 1
{Обработка каждого аргумента}
Next
или цикл For Each . . . Next
For Each arg In Args
{Обработка каждого аргумента}
Next
В первом случае доступ к каждому аргументу осуществляется через Args(i), а во втором — через переменную arg. Сценарии ARGS1.VBS и ARGS2.VBS демонстрируют, как это выполняется обоими способами.
Программа 20.13. Сценарий ARGS1.VBS
Set Args = Wscript.Arguments
For i = 0 to Args.Count - 1
txt =
txt & Args(i) & vbCrLf
Next
MsgBox txt
Каждый аргумент — это член семейства Args,
в котором он появляется в том же порядке, в котором был передан.
Программа 20.14. Сценарий ARGS2.VBS
Set Args = Wscript.Arguments
For Each arg In Args
txt = txt & arg & vbCrLf
Next
MsgBox txt
Для запуска этих сценариев необходимо воспользоваться командой Run (Выполнить) из меню Start (Пуск). В диалоговом окне Run необходимо ввести следующую строку.
WSCRIPT "C:\SCRIPTS\ARGS1.VBS" John Doe 33.55
Предположим, необходимо модифицировать путь к сценарию ARGS1.VBS согласно структуре жесткого диска. Двойные кавычки необходимы, так как длинные имена Windows 98 могут содержать пробелы. Аргументы разделены пробелами. Если запустить сценарий с указанными аргументами, то будет выведено сообщение (рис 20.7).
Рис. 20.7. Сценарии ARGS1.VBA и ARGS2.VBA: отображение аргументов в окне сообщений
Нельзя пользоваться запятой в качестве разделителя. Она будет рассматриваться как часть аргумента. Например, если ввести
WSCRIPT "С:\SCRIPTS\ARGS1.VBS" 1, 2, string
результат будет иметь вид, показанный на рис. 20.8.
Рис. 20.8. Параметры сценария не разделяются запятой
Если аргумент содержит пробелы, то его необходимо заключить в двойные кавычки. Например, если последний аргумент в следующей строке будет без кавычек,
WSCRIPT "С:\SCRIPTS\ARGS1.VBS" 1, 2, "string variable"
то семейство Arguments будет содержать четыре аргумента: 1, 2, "string" и "variable" (сами кавычки в аргумент не входят).