Что такое текущий каталог в пакетном файле?
Я хочу создать несколько пакетных файлов для автоматизации программы.
мой вопрос в том, когда я создаю пакетный файл, что такое текущий каталог? Это каталог, в котором находится файл, или тот же каталог, который отображается в командной строке, или что-то еще?
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%