Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] аналог %~dp0 из bat для vbs

Ответить
Настройки темы
VBS/WSH/JS - [решено] аналог %~dp0 из bat для vbs

Пользователь


Сообщения: 63
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как заменить %~dp0 в коде, чтобы скрипт работал из той папки, где был запущен, при условии, что батник в этой же папке?
Пробовал разное, искал на просторах сети, но что-то не выходит..

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "%~dp0\1.bat" & Chr(34), 0
Set WshShell = Nothing

Отправлено: 10:09, 09-03-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата NLOLegion:
Как заменить %~dp0 в коде, чтобы скрипт работал из той папки, где был запущен, при условии, что батник в этой же папке? »
Вообще-то, «%~dp0» вовсе не:
Цитата NLOLegion:
из той папки, где был запущен »
а строго «из того каталога, где находится пакетный файл». Они могут совпадать, но это разные понятия.

Выглядеть сие может так:
Код: Выделить весь код
Option Explicit

Dim objFSO


Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

WScript.Echo objFSO.GetParentFolderName(WScript.ScriptFullName)

Set objFSO = Nothing

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:39, 09-03-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Moderator


Сообщения: 53175
Благодарности: 15430

Профиль | Отправить PM | Цитировать


Или так:
Код: Выделить весь код
WScript.Echo Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - Len(WScript.ScriptName))
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:46, 09-03-2016 | #3


Пользователь


Сообщения: 63
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Petya V4sechkin, вроде как эти строчки я и нашел в сети, но где здесь запуск моего батника(1.bat)? Не получается совместить.

Отправлено: 10:52, 09-03-2016 | #4



Moderator


Сообщения: 53175
Благодарности: 15430

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Set WshShell = CreateObject("WScript.Shell")
strPath = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - Len(WScript.ScriptName))
WshShell.Run Chr(34) & strPath & "1.bat" & Chr(34), 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:06, 09-03-2016 | #5


Пользователь


Сообщения: 63
Благодарности: 0

Профиль | Отправить PM | Цитировать


Petya V4sechkin, безмерно признателен!!!!

Отправлено: 11:15, 09-03-2016 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата NLOLegion:
но где здесь запуск моего батника(1.bat) »
Ну, до кучи:
Код: Выделить весь код
Option Explicit

Dim objFSO
Dim objWshShell


Set objFSO      = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")

objWshShell.Run objWshShell.ExpandEnvironmentStrings("%comspec% /c """) & objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), "1.cmd") & """", 1, False

Set objWshShell = Nothing
Set objFSO      = Nothing

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:32, 09-03-2016 | #7


Пользователь


Сообщения: 63
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, благодарю за решение! А ещё ты всегда на форуме и оперативен. Можешь ли ссылку кинуть что почитать по данному вопросу? (как вариант в личку). Не хочется быть кретином и халявщиком( а вопросы я могу задавать бесконечно)).

Отправлено: 13:31, 09-03-2016 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата NLOLegion:
Можешь ли ссылку кинуть что почитать по данному вопросу? »
Полезные ресурсы по скриптовым языкам администрирования
Windows Script Host: Коллекция ссылок

Цитата NLOLegion:
а вопросы я могу задавать бесконечно) »
Задавайте. Но помните: каждому отдельному тематическому вопросу — отдельную тему.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:01, 09-03-2016 | #9


Пользователь


Сообщения: 63
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Ну, до кучи: »
как к этому решению добавить
Код: Выделить весь код
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\A\0\1.bat" & Chr(34), 0
Set WshShell = Nothing
?
ну конечно без надобности путь указывать - только название батника.
Чтобы и батник из каталога запустился, и дверь не скрипнула (окно консоли не появилось).
Готовое решение хорошо, но если возможно, показать какая строчка куда встанет и почему... если возможно

Последний раз редактировалось NLOLegion, 04-01-2020 в 13:01.


Отправлено: 12:55, 04-01-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] аналог %~dp0 из bat для vbs

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Передача значения из vbs в bat idlazarev_alex@vk Скриптовые языки администрирования Windows 1 09-02-2015 13:56
VBS/WSH/JS - Скрипт VBS для запуска .bat-файла при выключении компьютера(сценарий) W1nn1ep00h Скриптовые языки администрирования Windows 2 16-05-2013 16:31
VBS/WSH/JS - [решено] Аналог команды CD на VBS BigBoo Скриптовые языки администрирования Windows 1 08-07-2011 02:50
Любой язык - [решено] Передать данные из bat-файла в vbs-скрипт Hector Скриптовые языки администрирования Windows 2 21-06-2011 15:43
VBS/WSH/JS - Помогите написать аналог моего батника на VBS mitiya Скриптовые языки администрирования Windows 4 29-08-2009 16:21




 
Переход