![]() |
VBS - переменные файла
Как заставить VBS скрипт читать переменные из файла?
Есть файл var.cfg в нем примерно такой текст anyVar=VARHERE another.var1=Var1 another.var2=Var2 и тд. Тоесть название.переменной=значение переменной В java такое точно есть но нужно через VBS |
Ragnazar, в VBScript переменные не могут содержать точку:
Код:
Naming Restrictions Код:
Option Explicit |
Работает. Но есть два недочета
1) Пишет значение только первой строчки. var.cfg var1=AnyVar var2=VarHere Выход Var name: var1 Var value: AnyVar var2 2) После нажатия ОК выдает ошибку Строка: 11 Символ: 4 Ошибка: Недопустимый знак Самому разобрать и понять скрипт пока не получилось и я просто скопировал |
Цитата:
Цитата:
Цитата:
P.S. Я предпочитаю исполнять скрипты под cscript.exe. |
Странно но вторая проблема прошла сама. Но вторая сточка все так-же выдает только var2
А и можно - ли сделать что-бы эти переменные можно-было использовать далее?? Не только в пределах WScript.Echo "Var name:", Split(strLine, "=")(0), vbTab, "Var value:", Split(strLine, "=")(1) |
Вложений: 1
|
Цитата:
Код:
Var name: var1 Var value: AnyVar Выход: использовать в функции Split() разделитель «vbLf» вместо «vbCrLf», либо перейти использование в файле «var.cfg» стандартных для Windows разделителей строк. Цитата:
Опишите, что именно Вы хотите получить. Хранение значений некоторых, заранее известных, переменных между запусками скрипта? |
Будет лишь один скрипт а вот var.cfg будет гулять и меняться
Скрипт будет дописан с учетом всех переменных. Лишние переменные не будут использоваться а те что отсутствуют будут с ошибками либо скрипт не продолжит работу |
Ragnazar, понятней не стало.
|
Скрипт будет основан на выведении данных в виде
Товар:%var1% Статус:%var1s% И при добавлении новых строк в конфиг будет больше строк выводиться Если в конфиге 4 товара Товар:Некийтовар Статус:ОК Товар:Другойтовар Статус:ОК Товар:Ещетовар Статус:Нет Товар:Товар Статус: cfg var1=Некийтовар var1s=ОК var2=Другойтовар var2s=ОК var3=Ещетовар var3s=Нет var4=Товар var4s= |
Ragnazar, тогда переменные Вам ни к чему. Это обычные данные. Используйте простой двумерный (а лучше — ассоциативный) массив.
|
Ragnazar, если не совсем понятно, вот пример:
Если же понадобится заполнять некий шаблон — Вы можете проверять существование путём «objDictionary.Exists(<Key>)». |
Время: 15:30. |
Время: 15:30.
© OSzone.net 2001-