Получить текущий каталог batchfile
3 ответов
системная переменная только для чтения %CD%
сохраняет путь вызывающего пакета, а не расположение пакетного файла.
вы можете получить имя самого пакетного скрипта, введенного пользователем с помощью %0
(например,scripts\mybatch.bat
). расширения параметр можно применить к этому так %~dp0
вернет диск и путь к пакетному скрипту (например,W:\scripts\
) и %~f0
возвращает полный путь (например,W:\scripts\mybatch.cmd
).
вы можете ссылаться на другие файлы в той же папка как пакетный скрипт с помощью этого синтаксиса:
CALL %0\..\SecondBatch.cmd
это можно даже использовать в подпрограмме,Echo %0
даст метку вызова, но,echo "%~nx0"
даст вам имя файла пакетного сценария.
когда %0
переменная развернута, результат заключен в кавычки.
в вашей .bat-файла:
set mypath=%cd%
теперь вы можете использовать переменную %mypath%
ссылка на путь к файлу . Для проверки правильности пути:
@echo %mypath%
например, файл с названием DIR.bat
следующего содержания
set mypath=%cd%
@echo %mypath%
Pause
запустить из директории g:\test\bat
будет повторять этот путь в окне команд DOS.