Существует ли файл vbs

Обновлено: 01.07.2024

Я поддерживаю классическое приложение ASP, написанное в сценарии VB внешней компанией давным-давно.

у меня есть массив путей к файлам imagefile, например:

это будет существовать только на страницах, которые имеют баннерную рекламу. Существует некоторый стандартный код, который повторяет этот список в файле include (общий для всех страниц).

проблема в том, что если banners не создается на странице (это не на всех страницах), я получаю Can't find object ошибка

как правильно проверить, существует ли объект в скрипте VB?

ваш другой код вы можете поместить в файл include и использовать его в верхней части ваших страниц, чтобы избежать ненужного дублирования.

@Cheran S: я протестировал свои фрагменты выше с Option Explicit ВКЛ/ВЫКЛ и не возникают ошибки для любой версии, независимо от того, Dim banners там был или нет. :-)

IsObject может работать, но IsEmpty может быть лучшим вариантом - он специально предназначен для проверки, существует ли переменная или была инициализирована.

  • IsEmpty(var) проверит, существует ли переменная (без явного объекта) или инициализирована
  • IsNull(var) проверит, была ли переменная назначена Null
  • var Is Nothing проверит, если переменная была Set to Nothing , но выдаст ошибку, если вы попробуете ее на чем-то, что не является объектом
  • IsObject(var) проверит, является ли переменная объектом (и, по-видимому, все равно вернет False если var и Empty ).

если переменная объявлена, но не инициализирована, ее значение будет Empty , который вы можете проверить с помощью IsEmpty() функция:

banners будет равна Nothing если явно присвоить ему значение Set banners = Nothing .

у вас будут проблемы с этой техникой, если у вас есть Option Explicit включено (что является рекомендацией, но не всегда так). В таком случае, если banners не было Dim ed и вы пытаетесь проверить IsEmpty(banners) , вы получите ошибку времени выполнения. Если у вас нет Option Explicit on, у вас не должно быть никаких проблем.

edit: я только что видел это вопросы и ответы что тоже может помочь.

вам нужно иметь хотя бы dim banners на каждой странице.

нет head.asp или что-то на каждой странице?

ни один из IsEmpty, is Object, IsNull не работает с настройкой "Option Explicit", как stealthyninja выше ошибочно ответил. Единственный способ, который я знаю, - "взломать" параметр "явный" с настройкой "on Error Resume Next", поскольку Тристан Хавелик красиво делает это здесь: есть ли способ проверить, определена ли функция VBScript?

несколько связано это IsMissing() чтобы проверить, был ли передан необязательный параметр, в этом случае объект, например:

Есть увереность что скрипт различит:
file = "O:\instr\1\*.RTF" и For each File In Files?
Как мне помнится VBS не различает регистр букв в переменных, соответственно проверяется наличие текущего файла из коллекции, а не соответствие его маске.
Называй вещи своими именами, например так: mask_file= "O:\instr\1\*.RTF"

Что делает данная строка FSO.FileExists(file)? Не уверен, что допустимо использовать маску файлов, а не конкретный файл. Если все таки пройдет использование маски, тогда вовсе не нужно проверять каждый файл на соответствие маске достаточно написать так:

Собственно зачем весь сыр-бор? Только для того, что бы уведомить пользователя о приходе файла?

3 Ответ от Rumata 2012-09-07 02:00:54

  • Rumata
  • Разработчик
  • Неактивен











Не уверен, что допустимо использовать маску файлов

Лучше, на мой взгляд, для поиска файлов, соответствующих заданному шаблону, использовать полноценное регулярное выражение.

Если необходимо делать поиск по маске (*.RTF), то надо преобразовать маску в регулярное выражение. Возможно существуют простые средства в VBS по преобразованию маски в правильное регулярное выражение, но оно мне не знакомо. Поэтому я предлагаю использовать следующую функцию:

В дальнейшем результат функции можно использовать для поиска определенных файлов, соответствующих заданному шаблону:

4 Ответ от Dmitrii 2012-09-07 07:25:17

xsanekk, проверку наличия файлов с заданным расширением в заданной папке можно выполнить так:

Если задача решается с целью получения уведомления о появлении некоего файла в заданной папке, то для этого лучше использовать иной инструмент: WMI-подписку на соответствующее системное событие.
Ищите на форуме темы по ключам CIM_DirectoryContainsFile и __InstanceCreationEvent .

5 Ответ от xsanekk 2012-09-10 17:38:30 (изменено: xsanekk, 2012-09-10 18:09:33)

Спасибо за ответы и скрипты! Они работают, но как сделать так что бы он сканировал каждые 5 минут на входящие файлы? Как сделать что бы скрипт начинал за ново работать с задержкой например 5 минут? Надо использовать Sleep Do loop? Или что то другое? Насколько я понял goto нет. или проще использовать планировщик виндовс?

vbStr » 19.07.2005 (Вт) 21:00

Как определить: существует ли по определенному пути файл с некоторым именем? Можно ли решить эту проблему, не прибегая к обработке ошибки? Спасибо.

vbskb_file vbskb_exists vbskb_fileexists

tyomitch » 19.07.2005 (Вт) 23:09

Изображение

Leo. » 20.07.2005 (Ср) 18:59

Нет ничего невозможного, но возможное тожэ огграничена и при этом нестоит забывать что свои вазможнасти человек ограничивает сам!

Ruslan Demidow » 21.07.2005 (Чт) 8:00

GSerg » 21.07.2005 (Чт) 8:09

Потому что файл могут удалить после того, как условие проверено, но до того, как начала выполняться ветка. Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruslan Demidow » 21.07.2005 (Чт) 10:08

GSerg писал(а): Потому что файл могут удалить после того, как условие проверено, но до того, как начала выполняться ветка.

GSerg » 21.07.2005 (Чт) 10:19

Тады ловить ошибку, это единственно правильный способ. Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruslan Demidow » 21.07.2005 (Чт) 16:13

GSerg писал(а): Тады ловить ошибку, это единственно правильный способ.

GSerg » 21.07.2005 (Чт) 16:32

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Gfif21 » 21.07.2005 (Чт) 16:42

Вот в книжице нашел примерчик:

GSerg » 21.07.2005 (Чт) 16:43

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Gfif21 » 21.07.2005 (Чт) 16:48

tyomitch » 21.07.2005 (Чт) 19:20

GSerg писал(а): Потому что файл могут удалить после того, как условие проверено, но до того, как начала выполняться ветка.
Вообще-то я об этом даже не подумал
Мой код (тот же самый, что в книжице Gfif21) неправильный потому, что если в Dir передать мусор, то он вернёт ошибку 52 "Bad file name or number", и её всё равно придётся отлавливать.
Но ты указал гораздо более серьёзный недостаток этого кода.

Изображение

extHack » 22.07.2005 (Пт) 17:00

if dir$("c:\windows\system32\ntoskrnl.exe") <> "" then
'Файл существует
else
'Не существует
end if

vbStr » 22.07.2005 (Пт) 17:02

Всем спасибо! Я так понял: без отлавливания ошибки не обойтись!

GSerg » 22.07.2005 (Пт) 17:22

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruslan Demidow » 22.07.2005 (Пт) 21:34

GSerg, покажи, плиз, пример реализации "правильного" кода. Что-то я не допру: как можно через дир проверить наличие файла и одновременно отловить ошибку.
Сделали дир - файл есть. Куда теперь? Если дальше - ты пишешь: не правильно. Если проверять ошибку - то какую? Которую вернёт дир? Когда? По второму разу дир делать? Я запутался.

VVitafresh » 23.07.2005 (Сб) 0:15

Можно так проверять:
Код: Выделить всё
Public Function bFileExists(sFile As String) As Boolean
'Проверка наличия файла.
'Подключить References -> Microsoft Scripting Runtime
Dim f As New Scripting.FileSystemObject
If f.FileExists(sFile) = True Then
bFileExists = True
Else
bFileExists = False
End If
End Function

To GSerg:
Если делать эту проверку сразу перед использованием файла, то вероятность того, что файл удалят раньше, чем он обработается в ветке будет очень маленькой. Хотя, конечно, стандартный ErrorHandler не помешает никогда.

FaKk2 » 23.07.2005 (Сб) 2:06

Ты делаешь ставку на удачу. А GSerg делает наверняка.

Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

GSerg » 23.07.2005 (Сб) 3:44

Ruslan Demidow писал(а): Сделали дир - файл есть. Куда теперь? Если дальше - ты пишешь: не правильно. Если проверять ошибку - то какую? Которую вернёт дир? Когда? По второму разу дир делать? Я запутался.
Нет.
Если ты проверяешь наличие файла, значит, ты хочешь с ним что-то сделать. Вот сразу делай, без проверки наличия, и лови ошибку. Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruslan Demidow » 23.07.2005 (Сб) 8:35

Ruslan Demidow писал(а): Сделали дир - файл есть. Куда теперь? Если дальше - ты пишешь: не правильно. Если проверять ошибку - то какую? Которую вернёт дир? Когда? По второму разу дир делать? Я запутался.
Нет.
Если ты проверяешь наличие файла, значит, ты хочешь с ним что-то сделать. Вот сразу делай, без проверки наличия, и лови ошибку.
А если мне в моей программе при загрузке нужно проверить наличие файла указанного в настройках, а использовать его потом (в зависимости от наличия файла). Всё равно писать обработчик?

Viper » 23.07.2005 (Сб) 9:06

Наличие файла надо проверять каждый раз при его использовании. Т.е. если надо проверить наличие указанного при загрузке файла, проверяй. Когда позже начинаешь с ним работать - проверяй. и так далее.

а самая надежная проверка - отлов ошибки.

Ruslan Demidow , Привет земляку!

Ruslan Demidow » 23.07.2005 (Сб) 10:11

!Viper! писал(а): Наличие файла надо проверять каждый раз при его использовании. Т.е. если надо проверить наличие указанного при загрузке файла, проверяй. Когда позже начинаешь с ним работать - проверяй. и так далее.

В принципе я так и делаю. У меня Public функция которая на входе получает имя файла и на выходе возвращает True/False в зависимости от наличия файла. Перед использованием вызываю её, и после этого сразу же идёт проверка результата этой функции. А там уже по обстоятельствам.

!Viper! писал(а): а самая надежная проверка - отлов ошибки.

Если в каждой процедуре или функции писать одни и те же строки проверки ошибки - это получается нерационально. В моём случае - эти строки вынесены в общедоступную функцию.
Как ещё можно отлавливать ошибки при доступе к файлу - мне представляется с трудом. Имхо, лучше проверить на наличие перед использованием, чем столкнуться с ошибкой во время использования (или в начале использования), там где и не расчитываешь на ошибку.

Справочное руководство по VBScript

Примечание
Здесь и далее в тэгах HTML после открывающихся уголков < следует пробел, чтобы эти тэги не интерпретировались браузером, а просто отображались как текст HTML-кода.

VBScript является регистронезависимым языком (в отличие от JavaScript). Это означает, что изменение регистра символов (с прописных на строчные и наоборот) в имени переменной приводит к одной и той же переменной. Например, variable, Variable и vaRiabLe — одинаковые переменные.
Принципы программирования сценариев на VBScript такие же, что и на JavaScript. Однако имеются весьма заметные отличия в синтаксисе и наборах встроенных средств. Здесь мы не будем рассматривать VBScript столь же подробно, как JavaScript, а остановимся лишь наиболее важных, на мой взгляд, особенностях. Для тех, кто уже знаком с JavaScript, ниже приводится список основных особенностей VBScrip, отличающих его от JavaScriptt:

1. Ввод и вывод данных

Синтаксис с круглыми скобками для записи вызова функции MsgBox используется, чтобы присвоить возвращаемое значение произвольной переменной:

Первый параметр обязателен. Второй числовой параметр указывает, какая картинка и кнопки появятся в диалоговом окне.

Значения числового параметра, определяющего набор кнопок на панели, приведены ниже:

Значения числового параметра, определяющего картинку, приведены ниже:

Следующие две константы определяют режим работы диалогового окна:

Чтобы использовать одновременно несколько установок, необходимо просто сложить соответствующие значения числового параметра. Например, если требуется вывести картинку с вопросом и две кнопки Yes и No, то следует задать параметр 4 + 32 = 36.
Ниже показаны возвращаемые значения, которые присваиваются переменной intButtonClicked:

Выводит диалоговое окно с полем ввода данных и двумя кнопками ОК и Cancel (Отмена). Возвращает текст в поле ввода данных, если был щелчок на кнопке OK, или значение Empty, если был щелчок на кнопке Cancel. Возможны две формы вызова:
InputBox(подсказка, заголовок, исходное_значение, x, y)
InputBox подсказка, заголовок, исходное_значение, x, y

Подсказка представляет собой текст, выводимый внутри диалогового окна, исходный_текст — содержимое поля ввода при открытии окна, x и y — необязательные соответственно горизонтальная и вертикальная координаты относительно левого верхнего угла экрана монитора, измеряемые в твипах (1твип = 1/1440 дюйма). На рис. 13.2 показан пример диалогового окна.

2. Типы данных

Язык VBScript, как и JavaScript, является языком с так называемым свободным типом данных. Это означает, что переменная будет иметь тип, который определяется типом присваиваемого значения. При этом одна и та же переменная может иметь то один тип, то другой. Каким либо специальным образом тип переменной в тексте программы не объявляется. Обычно переменным присваиваются значения в виде строки символов, заключенных в двойные кавычки двойные или одинарные или числа (без кавычек). Внутреннее представление этих значений соответствует одному из следующих типов:

Типы данных в VBScriptt

Для преобразования данных из одного типа в другой служат специальные функции. Так например, числа можно хранить как данные одного из 6 типов. Однако не все эти типы равноценны с точки зрения точности представления чисел и занимаемого места в памяти. Если вы хотите преобразовать число 3.14 в целое, то тип Byte окажется более экономным, чем Integer. Для приведения числового значения переменной x к типу Integer используется функция Cint(x), а для приведения к типу Byte — функция CByte(x).
Примеры:

Значение Empty имеет объявленная переменная, которой еще не присвоено значение. Это значение ведет себя как 0 в операциях над числами и как пустая строка — в операциях над строками. Значение Empty нельзя присвоить с помощью оператора присваивания, оно назначается автоматически при создании переменной без присваивания ей начального значения.
Значение Null означает отсутствие допустимого значения. Переменная может получить его в результате некоторых операций над ней, в том числе и путем непосредственного присваивания ей этого значения. В отличие от Empty, значение Null можно присвоить переменной с помощью оператора присваивания.

В VBScript, в отличие от JavaScript, строковые значения заключаются только в двойные кавычки. Одинарные кавычки для этой цели не допускаются.

3. Переменные и операторы присваивания

Переменная является контейнером для хранения данных. Данные, сохраняемые в переменной, называют значениями этой переменной. Переменная имеет имя — последовательность букв, цифр и символа подчеркивания без пробелов и знаков препинания, начинающаяся обязательно с буквы или символа подчеркивания. Таким образом, имя переменной не должно начинаться с цифры или знака препинания.
Переменную можно объявить с помощью оператора Dim:
Dim имя_переменной

Переменная, объявленная с помощью оператора Dim, имеет значение Empty. Одним оператором Dim можно объявить несколько переменных, например,
Dim x, y, myvar

Вместе с тем, объявленная оператором Dim переменная, которой не присвоено конкретное значение, уже имеет значение Empty. Чтобы убедиться в этом, выполните следующий HTML-код:

Чтобы присвоить переменной значение, используют следующие выражения:
имя_переменной = значение
Let имя_переменной = значение
Set имя_переменной = значение

Оператор Let не является обязательным для присваивания значения переменной. Оператор Set используется для присваивания переменной ссылки на объект, в том числе и при создании нового объекта с помощью специальной функции CreateObject().

Вместо оператора Dim можно использовать операторы Private и Public для объявления соответственно локальных (частных) и глобальных переменных.

4. Массивы

Оператор Dim может использоваться не только для создания обычных переменных, но и для задания массивов. Массив может быть статическим (с постоянным количеством элементов) или динамическим (с заранее неопределенным количеством элементов). Массивы могут быть одномерными и многомерными (до 60 измерений). Одномерный статический массив определяется следующим образом:
Dim имя_массива(n)

Здесь n — количество элементов массива минус 1. Индексация элементов массива начинается с 0. Таким образом, число n в определении массива — индекс последнего элемента.
Многомерный статический массив задается аналогичным образом, но в круглых скобках через запятую указываются количества элементов минус 1 по каждому измерению. Например, следующий оператор задает двумерный массив из 8 строк и 3-х столбцов:
Dim myarray(7, 2)

Для получения значения элемента массива используется выражение вида:
имя_массива(индексы)

Например, для получения значения элемента двумерного массива myarray, находящегося в 3-й строке и 2-м столбце, можно воспользоваться таким выражением: myarray(2, 1).
В уже заданном статическом массиве нельзя изменить количество элементов и размерностей. В динамическом массиве, напротив, это можно делать сколько угодно раз. Динамический массив задается аналогично статическому, но в круглых скобках ничего не указывается:
Dim имя_массива()

Динамический массив отличается от статического тем, что позволяет устанавливать и изменять количество элементов в программе по мере необходимости. В случае многомерных массивов количество элементов можно изменить только для последнего измерения. После определения динамического массива можно использовать оператор назначения его длины (количества элементов):
Redim имя_массива(n)

Здесь n — количество элементов массива минус 1.

Если в программе изменяется длина массива, то значения его уже определенных элементов элементов могут быть потеряны.

Для сохранения значений динамического массива при изменении его длины используется ключевое слов Preserve (предохранить):
Redim Preserve имя_массива(n)

При работе с массивами, особенно динамическими, часто требуется знать их длину. Для этой цели служат две функции:
Lbound — возвращает наименьший индекс для данного массива
Ubound — возвращает наибольший индекс массива. Количество элементов всегда на 1 больше этого значения

В следующем примере длина существующего массива myarray увеличивается на 1 с сохранением всех его уже имеющихся значений:
Redim Preserve myarray(Ubound(myarray) + 1) /

5. Константы

Переменные, значения которых нельзя изменять, называются константами. Лучше сказать, что константы это именованные и неизменяемые значения.
Константа задается следующим оператором:
Const имя_константы = значение

Имя константы задается так же, как и имя переменной.
В VBScript имеется большое количество предопределенных констант, некоторые из них приведены ниже.

Константы системных цветов

6. Операторы

В программах на VBScript каждое выражение обычно размещается в отдельной строке и не завершается никаким специальным символом окончания. При необходимости расположить в одной строке несколько выражений последние разделяются двоеточием. Запись одного выражения (обычно очень длинного) можно перенести на другую строку. При этом используется знак продолжения — пробел и следующий за ним символ подчеркивания.
Примечание
В JavaScript одиночное выражение в одной строке можно завершать, а можно и не завершать точкой с запятой. Несколько выражений в одной строке разделяются точкой с запятой. При переносе записи выражения на другую строку знаки продолжения не предусмотрены.

6.1. Комментарии

Оператор комментария позволяет вставить в программу неинтерпретируемый текст, служащий лишь программисту. Он представляется одинарным апострофом (одинарной верхней кавычкой). Все, что расположено правее его, является комментарием, а не кодом программы. Комментарий может располагаться с начала строки или в строке с программным кодом, но правее его. Комментарии могут быть многострочными. В этих случаях каждая строка комментария должна начинаться с апострофа.

Примечание
В JavaScript для однострочных комментариев используются символы //, а для многострочных — /* … */

6.2. Арифметические операторы

Применение арифметических операторов к числовым данным подчиняется правилам математики. Однако они могут быть применены и к данным других типов. В частности, оператор сложения + для строковых данных выполняет их склейку, т.е. приписывает второй операнд к концу первого.

6.3. Операторы сравнения

Результатом вычисления элементарного выражения, содержащего оператор сравнения и операнды (сравниваемые данные), является логическое значение, то есть true или false. Так, если условие выполняется (верно, справедливо), то возвращается true. В противном случае возвращается false.

Обратите внимание, что операторы равенства и присваивания обозначаются одинаково. Интерпретатор VBScript различает их по контексту их применения в выражении.

Примечание
В JavaScript для оператора равенства используются два подряд следующих символа=, а для оператора присваивания — одинарный символ =

6.4. Логические операторы

Логические данные, обычно получаемые с помощью элементарных выражений, содержащих операторы сравнения, можно объединять в более сложные выражения. Для этого используются логические (булевские) операторы.

Логические выражения принимают значения True (Истина) или False (Ложь). Смысл первых трех операторов такой же как и операторов !, && и || в JavaScript . Действие остальных операторов можно выразить, используя булеву алгебру, через НЕ, И и ИЛИ следующим образом:

Примечание
В JavaScript нет операторов исключающего ИЛИ, эквивалентности и импликации. Однако нетрудно написать собственные функции, которые будут вычислять соответствующие выражения.

6.5. Строковые операторы

К строковым данным применим оператор склейки (конкатенации). В результате действия этого оператора к концу первой строки приписывается вторая строка. В качестве символа оператора склейки строк можно использовать + и &.

6.6. Операторы условного перехода

Оператор If
Оператор условного перехода if позволяет реализовать структуру условного выражения если …, то …, иначе …
Оператор If имеет несколько вариантов синтаксиса:
If условие Then выражение

If условие Then
выражения
End If

If условие-1 Then
[выражения-1]
[ElseIf условие-2 Then
[выражения-2]] …
[Else
[выражения-n]]
End If

Здесь квадратные скобки указывают лишь на то, что заключенные в них элементы синтаксической конструкции не являются обязательными. Обратите внимание, что блоков вида ElseIf может быть сколько угодно, в то время как блок вида Else может быть использован не более одного раза.

Оператор Select Case
Когда требуется вычислить значение выражения и сравнить его со значениями из заданных списков, удобно использовать оператор Select Case:
Select Case тестируемое_выражение
[Case список_значений-1
[выражения-1]]
[Case список_значений-2
[выражения-2]]

[Case список_значений-n
[выражения-n]]
[Case Else
[выражения-n+1]]
End Select

Здесь квадратные скобки указывают лишь на то, что заключенные в них элементы синтаксической конструкции не являются обязательными. Список значений может состоять из одного или нескольких элементов. В последнем случае они разделяются запятыми.
С помощью оператора Select Case вычисляется значение тестируемого выражения, которое последовательно сравнивается со значениями из списков блоков Case. Если значение тестируемого выражения совпадает с каким-нибудь значением из списка какого-нибудь блока Case, то выполняются выражения, соответствующие этому блоку. Если значение тестируемого выражения входит в несколько списков, то выполняются выражения самого первого блока Case. После выполнения выражений блока Case управление вычислительным процессом передается оператору, непосредственно следующему за End Select. Если ни один из списков значений, заданных в блоках Case, не содержит значения тестируемого выражения, то выполняются выражения блока Case Else (при его наличии). Если блок Case Else отсутствует, то управление передается оператору , непосредственно следующему за End Select.

Пример: Примечание
В JavaScript близким по смыслу к Select Case является оператор switch

6.7. Операторы цикла

Оператор цикла обеспечивает многократное выполнение блока программного кода до тех пор, пока не выполнится некоторое условие. В VBScript имеются несколько операторов цикла.

Оператор For … Next
Оператор цикла со счетчиком циклов имеет следующий синтаксис:
For счетчик=начальное_значение To конечное_значение [Step приращение]
выражения
Next

При выполнении этого оператора сначала переменной счетчик присваивается начальное значение. Если это значение не равно заданному конечному значению, то выполняются выражения, указанные в теле оператора цикла. В противном случае выражения не вычисляются, а управление передается оператору, непосредственно следующему за Next. Затем значение счетчика увеличивается на величину приращения, указанную после ключевого слова Step (если его нет, то на 1). Новое значение счетчика сравнивается с конечным значением и далее все повторяется описанным выше способом.

Оператор For Each … Next
Оператор For Each … Next позволяет организовать цикл по элементам массива или по объектам из некоторого множества, когда их количество заранее не известно. Этот оператор выполняет заданные выражения для каждого элемента из указанного множества. Он имеет следующий синтаксис:
For Each элемент In множество
выражения
Next

Параметр множество задает имя массива или коллекцию объектов. Параметр элемент — переменная, которая в процессе выполнения оператора цикла автоматически принимает в качестве значения ссылку на элемент массива или объект.
For . Next — выполняет часть кода заданное число раз. For Each . Next Statement — выполняет часть кода для всех элементов массива или коллекции. Оператор Do . Loop
Do . Loop — выполняет часть кода до тех пор, пока условие справедливо, или до тех пор, пока оно не станет выполняться (в зависимости от конструкции). Оператор While . Wend
While . Wend — выполнет блок кода, пока выполняется условие.

7.Функции

В VBScript есть некоторое количество функций, используемых для управления переменными и доступа к их значениям. Их можно разделить на несколько категорий: Для получения полного описания каждой функции можно воспользоваться, например, справочной системой приложения, в котом VBScript установлен.

Функции преобразования
Эти функции используются для преобразования значений переменных разных типов.

Читайте также: