Как выполнять программы в том же каталоге, что и пакетный файл Windows? - PullRequest
63 голосов
/ 28 апреля 2010

У меня в одной папке есть файл .bat и .exe. Я не мог вызвать файл .exe из .bat, если не указал полный абсолютный путь к нему. Есть ли способ не указывать путь?

Ответы [ 2 ]

135 голосов
/ 28 апреля 2010

Попробуйте позвонить .exe с %~dp0, например: %~dp0MyProgram.exe.

%0 содержит полный путь к вызываемому файлу .bat.

~dp говорит, чтобы получить диск и путь, включая конечный \.

20 голосов
/ 05 апреля 2016

Я решил эту проблему, изменив рабочий каталог с помощью pushd в начале сценария, а восстановление в конце сценария с помощью popd . Таким образом, вы всегда можете предположить, что рабочий каталог совпадает с местоположением файла bat.

pushd %~dp0
ProgramInSameFolderAsBat.exe
popd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...