powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вызов скрипта из скрипта при входе в систему
3 сообщений из 3, страница 1 из 1
Вызов скрипта из скрипта при входе в систему
    #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
Вызов скрипта из скрипта при входе в систему
    #38064937
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем в vbs использовать %0 ?
...
Рейтинг: 0 / 0
Вызов скрипта из скрипта при входе в систему
    #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
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вызов скрипта из скрипта при входе в систему
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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