|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] VBS - переменные файла |
|
|
VBS/WSH/JS - [решено] VBS - переменные файла
|
Пользователь Сообщения: 118 |
Профиль | Отправить PM | Цитировать Как заставить VBS скрипт читать переменные из файла?
Есть файл var.cfg в нем примерно такой текст anyVar=VARHERE another.var1=Var1 another.var2=Var2 и тд. Тоесть название.переменной=значение переменной В java такое точно есть но нужно через VBS |
|
Отправлено: 07:42, 10-10-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Ragnazar, в VBScript переменные не могут содержать точку:
Naming Restrictions Variable names follow the standard rules for naming anything in VBScript. A variable name: * Must begin with an alphabetic character. * Cannot contain an embedded period. * Must not exceed 255 characters. * Must be unique in the scope in which it is declared. Option Explicit Dim strContent Dim strLine With WScript.CreateObject("Scripting.FileSystemObject") With .OpenTextFile("E:\Песочница\0182\var.cfg") For Each strLine In Split(.ReadAll(), vbCrLf) WScript.Echo "Var name:", Split(strLine, "=")(0), vbTab, "Var value:", Split(strLine, "=")(1) Execute strLine '…or ExecuteGlobal strLine Next .Close End With End With WScript.Quit 0 |
Отправлено: 07:58, 10-10-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 118
|
Профиль | Отправить PM | Цитировать Работает. Но есть два недочета
1) Пишет значение только первой строчки. var.cfg var1=AnyVar var2=VarHere Выход Var name: var1 Var value: AnyVar var2 2) После нажатия ОК выдает ошибку Строка: 11 Символ: 4 Ошибка: Недопустимый знак Самому разобрать и понять скрипт пока не получилось и я просто скопировал |
Отправлено: 08:30, 10-10-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Ragnazar:
Цитата Ragnazar:
P.S. Я предпочитаю исполнять скрипты под cscript.exe. |
||
Отправлено: 08:59, 10-10-2012 | #4 |
Пользователь Сообщения: 118
|
Профиль | Отправить PM | Цитировать Странно но вторая проблема прошла сама. Но вторая сточка все так-же выдает только var2
А и можно - ли сделать что-бы эти переменные можно-было использовать далее?? Не только в пределах WScript.Echo "Var name:", Split(strLine, "=")(0), vbTab, "Var value:", Split(strLine, "=")(1) |
|
Отправлено: 14:49, 10-10-2012 | #5 |
Пользователь Сообщения: 118
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:51, 10-10-2012 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Ragnazar:
одну лишь, единственную переменную — var1, со значением AnyVar ↵var2 (где «↵» — Lf, LineFeed). Выход: использовать в функции Split() разделитель «vbLf» вместо «vbCrLf», либо перейти использование в файле «var.cfg» стандартных для Windows разделителей строк. Цитата Ragnazar:
Опишите, что именно Вы хотите получить. Хранение значений некоторых, заранее известных, переменных между запусками скрипта? |
||
Отправлено: 08:50, 11-10-2012 | #7 |
Пользователь Сообщения: 118
|
Профиль | Отправить PM | Цитировать Будет лишь один скрипт а вот var.cfg будет гулять и меняться
Скрипт будет дописан с учетом всех переменных. Лишние переменные не будут использоваться а те что отсутствуют будут с ошибками либо скрипт не продолжит работу |
Отправлено: 15:28, 13-10-2012 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Ragnazar, понятней не стало.
|
Отправлено: 17:04, 13-10-2012 | #9 |
Пользователь Сообщения: 118
|
Профиль | Отправить PM | Цитировать Скрипт будет основан на выведении данных в виде
Товар:%var1% Статус:%var1s% И при добавлении новых строк в конфиг будет больше строк выводиться Если в конфиге 4 товара Товар:Некийтовар Статус:ОК Товар:Другойтовар Статус:ОК Товар:Ещетовар Статус:Нет Товар:Товар Статус: cfg var1=Некийтовар var1s=ОК var2=Другойтовар var2s=ОК var3=Ещетовар var3s=Нет var4=Товар var4s= |
Отправлено: 19:14, 13-10-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Добавление пути(ей) в системные переменные (path) с помощью cmd-файла | bearmvz | Скриптовые языки администрирования Windows | 10 | 05-08-2012 15:21 | |
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. | OSArev | Скриптовые языки администрирования Windows | 2 | 30-01-2011 11:58 | |
Прочее - Переменные | RasKolbas | Общий по Linux | 8 | 23-07-2010 18:12 | |
Разное - [PHP] Переменные | CXREF | Программирование и базы данных | 2 | 16-06-2009 08:15 | |
Переменные в PHP | Guest | Вебмастеру | 1 | 10-01-2003 13:48 |
|