![]() |
Передача значений переменной в другой скрипт
Доброго времени суток. Есть 2 файла .bat и .vbs
в .bat есть код: Код:
FOR /f "TOKENS=*" %%i IN ('DIR /b "%PathLocal%\Sirene\%COMPUTERNAME%"') DO ( ::тут просто ищется папка в сети теперь файл .vbs он по-сути создает ярлык на исполняющий файл, в копируемой .bat-ником папке, в нем вот такой код: Код:
oShortCut.IconLocation = "c:\gfum[число]\AutoUpdate.exe ,0" :: сложность в передаче другому скрипту параметров переменной из основного скрипта Есть мысль в vbs запустить проверку аналогичную в bat с поиском папки начинающейся на gfum и, в случае нахождения таковой, использовать ее имя в адресе. Жду помощи, идей, решений... |
Цитата:
Код:
cscript.exe //nologo "Путь\Скрипт.vbs" "gfum!result!" |
еще вопрос остался:
в VBS использую для адреса в ярлыке: .TargetPath = "c:\" & result & "\run.exe" При условии, что result=gfum100, ярлык должен искать run.exe по адресу: c:\gfum100\run.exe Ярлык создается, но ссылается на: C:\run.exe Что не так? при исправлении result на c:\gfum100 , конструкцию .TargetPath = result & "\run.exe" принимает нормально |
проверил чуть, в VBS ошибок нет с помощью MsgBox вывел result = пустое сообщение, выходит, из BAT файла не передается result.
В *.bat вызываю скрипт так: cscript.exe //nologo "путь\скипт.vbs" "!result!" перед этим вызовом, попробовал отобразить ECHO !result! получил gfum100 Выходит vbs вызывается, а переменная не получает значения |
Цитата:
|
Так, тоже полезно, спасибо, но при выводе:
MsgBox WScript.Arguments.Item(0) получаю конструкцию: result=gfum100 выходит, нужно отсечь часть символов от начала, а просто к result как бы перейти, чтобы в дальнейшем пользоваться уже result как переменной? В начале OptionExplict есть, Dim result объявлена... |
отбой... все решил... верней вызов из .bat был неверный:
было: cscript.exe //nologo "\\путь\файл.vbs" "result=!result!" надо: cscript.exe //nologo "\\путь\файл.vbs" "!result!" ну и в .vbs: Код:
Option Explicit .TargetPath = "c:\" & WScript.Arguments.Item(0) & "\run.exe" тему "решаем" но пожелание осталось бы использовать не "громоздкую" конструкцию, а объявить в .vbs переменную result и пользоваться ей т.е. Dim result и .TargetPath = "c:\" & result & "\run.exe" |
Instant_SR, использование параметров — это не «громоздкая конструкция», а единственно разумный и правильный вариант (есть ещё один, мало разумный).
|
Время: 21:22. |
Время: 21:22.
© OSzone.net 2001-