Получить текущий каталог batchfile

3 ответов


системная переменная только для чтения %CD% сохраняет путь вызывающего пакета, а не расположение пакетного файла.

вы можете получить имя самого пакетного скрипта, введенного пользователем с помощью %0 (например,scripts\mybatch.bat). расширения параметр можно применить к этому так %~dp0 вернет диск и путь к пакетному скрипту (например,W:\scripts\) и %~f0 возвращает полный путь (например,W:\scripts\mybatch.cmd).

вы можете ссылаться на другие файлы в той же папка как пакетный скрипт с помощью этого синтаксиса:

CALL %0\..\SecondBatch.cmd

это можно даже использовать в подпрограмме,Echo %0 даст метку вызова, но,echo "%~nx0" даст вам имя файла пакетного сценария.

когда %0 переменная развернута, результат заключен в кавычки.

подробнее о параметрах пакета.


очень просто:

setlocal
cd /d %~dp0
File.exe

в вашей .bat-файла:

set mypath=%cd%

теперь вы можете использовать переменную %mypath% ссылка на путь к файлу . Для проверки правильности пути:

@echo %mypath%

например, файл с названием DIR.bat следующего содержания

set mypath=%cd%
@echo %mypath%
Pause

запустить из директории g:\test\bat будет повторять этот путь в окне команд DOS.