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

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

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

Ответ 1

Из вашего командного файла:

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

Ответ 2

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

Ответ 3

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

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

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

start %mypath%\Myprog.exe

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

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

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

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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

 start %cd%\filename.filetype

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

Ответ 7

При попытке открыть файл bat в режиме администратора следующая команда не выполняется (мне нужно выполнить некоторые команды в существующих рабочих каталогах).

установить mypath =% cd%

cd% mypath%

Но это работает нормально

установить mypath =% ~ dp0

cd mypath

Ответ 8

Просто мои 2 цента. Следующая команда не выполняется, если она вызывается из пакетного файла (Windows 7), размещенного на pendrive:

xcopy /s /e /i %cd%Ala C:\KS\Ala

Но это делает работу:

xcopy /s /e /i %~dp0Ala C:\KS\Ala