|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как узнать полный путь до запущенного bat-скрипта |
|
CMD/BAT - [решено] Как узнать полный путь до запущенного bat-скрипта
|
Новый участник Сообщения: 3 |
Нужно написать bat-файл, запускающий скрипты находящиеся в той же папке.
Нужно знать, в каком каталоге находится запущенный bat-файл. Ну, например, в этом же каталоге лежат другие скрипты, которые должны быть запущены текущим выполняющемся батником. Для того, чтобы он их запустил, ему было бы неплохо знать, где их искать, потому что вы могли запустить его находясь в совершенно произвольной директории. Или, к примеру, воспользоваться для запуска не самим файлом bat, а символической ссылкой, лежащей в другом каталоге, которая указывает на bat-файл. Можно, конечно, поступить просто и в самом батнике жёстко прописать полный путь до каталога, в котором этот он лежит. В bash-скрипте получится что-то вроде этого, но это не годится для Windows. #!/bin/bash DIRECTORY="/home/user/my_scripts" cd $DIRECTORY # запуск "соседних" скриптов ./script1.sh ./script2.sh Вполне рабочий вариант и две обозначенные выше проблемы будут решены, но если надо будет переместить скрипт в другой каталог, то и значение переменной придётся руками поменять в самом скрипте. Не очень удобно. Для красивого решения проблемы нужно знать всего три вещи: 1.Путь до выполняющегося скрипта можно узнать с помощью $0, но проблема в том, что он относительный, т.е. если вы запустите скрипт как ./script.sh, то и $0 будет содержать ./script.sh 2.Команда readlink с параметром -e решит сразу две проблемы: во-первых она вернет полный путь до файла скрипта, если вы воспользовались для запуска символической ссылкой (даже если это была цепочка симлинков), а во-вторых преобразует относительный путь, если такой получен с помощью $0, в абсолютный 3.Чтобы избавиться от имени файла скрипта в конце абсолютного пути, нужно воспользоваться командой dirname Пример: #!/bin/bash # полное путь до скрипта ABSOLUTE_FILENAME=`readlink -e "$0"` # каталог в котором лежит скрипт DIRECTORY=`dirname $ABSOLUTE_FILENAME` # запуск "соседних" скриптов $DIRECTORY/script1.sh $DIRECTORY/script2.sh Либо если есть варианты в VBS, жду предложений. Заранее спасибо. |
|
Отправлено: 16:09, 16-09-2012 |
Сообщения: 53500
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:56, 16-09-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Про код "%~dp0" я знаю, хотелось бы поконкретнее на примере, т.к. в bat я еще не совсем разбираюсь. Задача такая: запуск файла 1.bat, который в свою очередь запустит два других скрипта (или просто откроет файлы) из той же папки. Думаю, уже понятно, что папка не будет находится в одном месте постоянно, а будет использована и на др. ПК. Долго мучаюсь, объясните "на пальцах", либо на VBS. Очень надо.
|
Отправлено: 18:05, 16-09-2012 | #3 |
Сообщения: 53500
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:15, 16-09-2012 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Спасибо! Не думал, что так коротко и просто.
|
|
Отправлено: 18:33, 16-09-2012 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Помогите исправить ошибку скрипта php, которая раскрывает путь сервера | torrent | Вебмастеру | 0 | 25-04-2012 13:10 | |
Блог - В каких случаях при запуске программы не надо указывать полный путь к ней | Vadikan | Microsoft Windows 7 | 0 | 19-10-2011 10:30 | |
[решено] Как найти файл и записать ПОЛНЫЙ путь к нему | vivera864864 | AutoIt | 3 | 13-06-2011 19:04 | |
Интерфейс - [решено] Выводится полный путь файлов и папок в панели задач | Skiv444 | Microsoft Windows 7 | 5 | 11-07-2010 15:54 | |
Как узнать путь в реестре | Rigiy | Хочу все знать | 4 | 18-01-2007 02:50 |
|