Я знаю, что это старый вопрос, но я подумал, что стоит отметить, что подход, основанный на принятом ответе (т. Е. Изменение рабочего каталога), не всегда может быть подходящим.
Лучший общий подход - ссылаться на зависимости по полному пути:
call "%~dp0include.bat"
(Поскольку% ~ dp0 уже заканчивается обратной косой чертой, нам не нужно добавлять еще одну.)
Вот некоторые преимущества , а не изменения рабочего каталога:
- Остальной пакетный файл все еще может использовать исходный рабочий каталог.
- Исходный рабочий каталог в командной строке сохраняется даже без «SETLOCAL».
- Если первый пакетный файл запускается по пути UNC (например, "\\ server \ share \ file.bat"), вызов полного пути будет успешным при изменении каталога (даже при использовании "cd / d ") потерпит неудачу . (Использование pushd / popd решило бы эту проблему, но у них есть свои проблемы.)
Эти преимущества особенно важны для пакетных файлов псевдонима, даже если они не так важны для конкретной ситуации, которая мотивировала этот вопрос.