Что такое текущий каталог в пакетном файле?

Я хочу создать несколько пакетных файлов для автоматизации программы.

мой вопрос в том, когда я создаю пакетный файл, что такое текущий каталог? Это каталог, в котором находится файл, или тот же каталог, который отображается в командной строке, или что-то еще?

6 ответов


в пакетный файл:

  • %cd% относится к текущий рабочий каталог (переменная)
  • %~dp0 ссылается на полный путь к каталогу пакетного файла (статический)
  • %~dpnx0 ссылается на полный путь к каталогу пакета и имени файла (статический).

Это обычно - это каталог, из которого запускается пакетный файл, но если вы запустите пакетный файл из ярлыка, может быть задан другой начальный каталог. Кроме того, когда вы находитесь в cmd, и ваш текущий каталог c:\dir3, вы все еще можете запустить пакетный файл с помощью c:\dir1\dir2\batch.bat в этом случае текущий каталог будет c:\dir3.


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

set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)

Итак, скажем, вы хотели открыть Myprog.исполняемый. Если он был в той же папке, используйте команду:

start %mypath%\Myprog.exe

это откроет Myprog из текущей папки.

другой вариант-создать каталог в C: называется AutomatePrograms. Затем вы переносите свои файлы в эту папку, то вы можете открыть их с помощью следующая команда:

start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"

- Это каталог, из которого вы запускаете пакетный файл. Е. Г. если ваша партия находится в c:\dir1\dir2 и вы cd c:\dir3, затем запустите пакет, текущий каталог будет c:\dir3.


скажем, вы открываете файл в текущем каталоге. Команда будет:

 start %cd%\filename.filetype

надеюсь я ответил на ваш вопрос.


это каталог, из которого вы запускаете команду для выполнения пакетного файла.

Как упоминалось в приведенных выше ответах, вы можете добавить команду ниже в свой скрипт для проверки:

> set current_dir=%cd%
> echo %current_dir%