Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вызов скрипта из скрипта при входе в систему / 3 сообщений из 3, страница 1 из 1
04.12.2012, 16:36
    #38064624
PyroTechnic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов скрипта из скрипта при входе в систему
Возникла следующая проблема. В домене есть некий набор сценариев для входа пользователей в систему, который великоумные админы из корня netlogon перенесли в подпапку. Сказали, что так должно быть и назад пути нет. И почему теперь сценарии перестали работать, их не парит. А сценарии перестали работать, потому что в них идут вызовы других сценариев, которые пока все лежало в корне, работали, а теперь сообщают, что файл найти не могут. Сценарии смешанные - bat и vbs (js). как побороть проблему в bat'е я выяснил - путем добавления к вызову пути "%0\..\", а вот как ее побороть в vbs никак сообразить не могу. Там для вызова сценария используется метод WshShell.Run, например WshShell.Run("test.bat"). Пробовал запихнуть туда этот путь уже несколькими разными методами:
Код: vbnet
1.
2.
3.
WshShell.Run("%0\..\test.bat"),
WshShell.Run("%0\\..\\test.bat"),
WshShell.Run(String.fromCharCode(37,48,92,46,46,92)+"test.bat")

результат один и тот же - файл не найден. Подскажите, как правильно. Заранее спасибо.
...
Рейтинг: 0 / 0
04.12.2012, 19:02
    #38064937
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов скрипта из скрипта при входе в систему
А зачем в vbs использовать %0 ?
...
Рейтинг: 0 / 0
04.12.2012, 19:08
    #38064948
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов скрипта из скрипта при входе в систему
> PyroTechnic,
> побороть проблему в bat'е я выяснил - путем добавления к вызову пути "%0\..\"

%0 вернёт полное имя файла скрипта, чтобы получить полное имя папки (с завершающим бэкслэшем)
используйте
%dp0 - значение будет обрамлено кавычками
%~dp0 - значение НЕ будет обрамлено кавычками

> а вот как ее побороть в vbs ...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
' Ещё проще чем. 
' Объект wscript.shell считает текущей ту директорию, из которой запущен скрипт.
' И нормально воспринимает относительные пути
WshShell.Run("..\test.bat")                '<-- запуск батника из родительской папки
WshShell.Run("..\..\supertest.bat")        '<-- запуск батника из ПРАродительской папки
WshShell.Run("..\GodBlessAmins\test2.bat") '<-- запуск батника из сестринской папки

' Если уж необходим абсолютный путь, то
' wscript.ScriptFullName                       вернет полный путь к файлу запущеного скрипта
' left(wscript.ScriptFullName, _
       instrrev(wscript.ScriptFullName, "\"))  вернет полное имя папки (с завершающим бэкслэшем)

не корысти ради, а ... пользы для(?) Объекты Windows Script Host
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вызов скрипта из скрипта при входе в систему / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]