Я хочу создать несколько командных файлов для автоматизации программы.
Мой вопрос: когда я создаю командный файл, какой каталог является текущим? Это каталог, в котором находится файл, или это тот же каталог, который отображается в командной строке, или что-то еще?
batch-file
directory
Аарон де Виндт
источник
источник
%0
может дать имя текущей подпрограммы, но всегда%~dp0
будет указывать полный путь к исполняемому пакетному файлу..cmd
файлу и запуске от имени администратора,%cd%
даетC:\WINDOWS\system32
и%~dp0
дает каталог командного файла с косой чертой.Это , как правило , это каталог , из которого запускается пакетный файл, но если запустить пакетный файл из ярлыка, другой стартовый каталог может быть предоставлен. Кроме того, когда вы находитесь в cmd, а ваш текущий каталог есть
c:\dir3
, вы все равно можете запустить командный файл, используяc:\dir1\dir2\batch.bat
в этом случае текущий каталогc:\dir3
.источник
В пакетном файле% cd% является наиболее часто используемой командой для текущего каталога, хотя вы можете установить свою собственную переменную:
Скажем, вы хотели открыть Myprog.exe. Если бы он был в той же папке, вы бы использовали команду:
Это откроет Myprog из текущей папки.
Другой вариант - создать каталог в C: с именем AutomatePrograms. Затем вы переносите свои файлы в эту папку, а затем можете открыть их с помощью следующей команды:
источник
%cd%
это переменная, поэтому запуск командного файла из проводника Windows от имени администратора даст вамC:\WINDOWS\system32
почти то, что вы не хотите.%~dp0
является более последовательным.Скажем, вы открывали файл в своем текущем каталоге. Команда будет:
Я надеюсь, что ответил на ваш вопрос.
источник
Это каталог, из которого вы запускаете команду для запуска вашего пакетного файла.
Как уже упоминалось в ответах выше, вы можете добавить приведенную ниже команду в ваш скрипт для проверки:
источник
Это каталог, из которого вы запускаете командный файл. Например, если ваш пакет включен,
c:\dir1\dir2
и вы делаетеcd c:\dir3
, а затем запустить пакет, текущий каталог будетc:\dir3
.источник
Просто мои 2 цента. Следующая команда не выполняется, если она вызывается из пакетного файла (Windows 7), размещенного на pendrive:
Но это делает работу:
источник
%~dp0