BAT-файл, чтобы открыть CMD в текущем каталоге - PullRequest
48 голосов
/ 15 декабря 2010

У меня есть много скриптов, с которыми я взаимодействую из командной строки. Каждый раз, когда мне нужно их использовать, мне приходится открывать окно командной строки и копировать + вставлять и CD в путь к каталогу, в котором они находятся. Это утомительно (они находятся в довольно глубокой файловой системе, поэтому вводим полный путь это боль, копирование + вставка лучше, но не очень). Я попытался создать файл .BAT, который я мог бы дважды щелкнуть, чтобы открыть новое окно командной строки в папке, в которой файл .bat существует в , но он не работает. Откроется новое окно, но рабочий каталог - это не каталог, в котором находится .bat-файл. Вот что я получил после долгих поисков (мои навыки работы с cmd не так хороши):

cd %CD%
cmd.exe

Я знаю, что когда я использовал Linux, в Konqueror была функция «Окно командной строки здесь», и именно этот эффект я пытаюсь получить в Windows.

Ответы [ 16 ]

95 голосов
/ 15 декабря 2010

вы, вероятно, захотите сделать это:

cd /d %~dp0
cmd.exe

это установит ваш текущий каталог в каталог, в котором у вас есть пакетный файл в

47 голосов
/ 16 декабря 2010

Создайте файл с именем open_dos_here.cmd со следующими строками:

%~d1
cd "%~p1"
call cmd

Поместите этот файл в любую папку.Затем перейдите в папку «Отправить в» ( Win + E ; Alt + D ; shell:sendto; Введите ).Создайте ярлык для указания на этот open_dos_here.cmd

Затем в любой папке выберите любой файл или подпапку.Щелкните правой кнопкой мыши и выберите «Отправить», а затем выберите open_dos_here.cmd, чтобы открыть DOS в этой папке.

24 голосов
/ 28 июня 2012

Вы можете просто ввести cmd в адресную строку в проводнике, и она запускается по этому пути. Аналогично для PowerShell.

11 голосов
/ 13 мая 2014

Есть более простой способ

start /d "folder path"
7 голосов
/ 21 декабря 2010

В качестве более общего решения вы можете воспользоваться Microsoft Power Toy для XP, в котором при щелчке правой кнопкой мыши добавляется опция «Открыть окно командной строки»: http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx

В Vista и Windows 7 вы получите эту опцию, если удерживать клавишу Shift и щелкнуть правой кнопкой мыши (это встроено).

6 голосов
/ 04 декабря 2012

Я думаю, что если вы создаете пакетный скрипт, который полагается на то, что Current Directory настроен на папку, содержащую пакетный файл, то вы настраиваете себя на неприятности, когда пытаетесь выполнить пакетный файл, используяполный путь, как в планировщике.

Лучше добавить эту строку и в свой пакетный файл:

REM Change Current Directory to the location of this batch file 
CD /D %~dp0

, если вы не полностью указали все свои пути.

3 голосов
/ 17 декабря 2015

Самый простой способ в проводнике - это Shift + щелчок правой кнопкой мыши на папке или на пустом месте в папке и нажмите Open command prompt here.

CMD запустится в этой папке

Должен сказать, я не уверен, работает ли он для Windows Vista и ниже, но, безусловно, работает для Windows 7, 8, 8.1 и 10.

2 голосов
/ 17 июня 2014

Самая простая команда для этого:
start

Вы всегда можете запустить это в командной строке, чтобы открыть новое окно командной строки в том же месте.Или вы можете поместить его в ваш файл .bat.

2 голосов
/ 18 сентября 2012

Другое решение заключается в использовании файла ярлыка для cmd.exe вместо командного файла.

Измените начало ярлыка в свойстве на % ~ dp0 .

Вы достигаете того же самого, за исключением того, что у него есть значок Cmd (и вы можете изменить это).

Некоторым людям не нравится нажимать на пакетные файлы, не зная, что в них, а некоторые корпоративные сетевые диски имеют запрет на .bat файлы ...

2 голосов
/ 28 июня 2012

Вы можете добавить пункт контекстного меню через реестр:

  1. Перейдите в своем реестре к HKEY_LOCAL_MACHINE/Software/Classes/Folder/Shell и создайте ключ с именем «Командная строка» без кавычек.

  2. Установите строку по умолчанию для любого текста, который вы хотите отображать в контекстном меню.

  3. Создайте новый ключ во вновь созданной командной строке с именем «command» и установите для строки по умолчанию значение

    cmd.exe /k pushd %1
    

Может потребоваться добавить %SystemRoot%\system32\ перед cmd.exe, если исполняемый файл не найден.

  1. Изменения должны вступить в силу немедленно. Щелкните правой кнопкой мыши папку, и ваш новый пункт меню должен появиться.

Также см. http://www.petri.co.il/add_command_prompt_here_shortcut_to_windows_explorer.htm

...