По умолчанию CMD и PowerShell запускаются либо в профиле текущего пользователя, либо (если процесс запущен от имени администратора) в системной папке Windows\system32. И если требуется выполнить команду или запустить скрипт в другой директории, то надо сначала в эту директорию перейти либо указать в команде полный путь. Чтобы немного облегчить себе жизнь и сэкономить время можно добавить команду для запуска консоли в контекстное меню проводника.
Напомню, меню открывается кликом правой клавиши мышки по объекту (файлу, папке и т.п.), а контекстным оно называется потому, что набор пунктов меняется в зависимости от выбранного объекта.
Соответственно нам надо в меню директории добавить пункт для запуска консоли в этой директории. Сделать это можно с помощью несложного твика реестра.
Примечание. О том, как работать с реестром, можно почитать здесь.
Настройки, отвечающие за контекстное меню для директории, находятся в разделе HKEY_CLASSES_ROOT\Directory\shell. Для запуска командной строки создадим в этом разделе подраздел с именем cmd. Хотя имя раздела в принципе неважно, но желательно сделать его интуитивно понятным, чтобы не путаться.
Дефолтному параметру в созданном разделе зададим значение ″Open SMD here…″, эта строка будет отображаться как название пункта меню. А если тут же создать пустой строковый параметр с именем Extended, то новый пункт меню будет виден только в расширенном режиме, т.е. при нажатии Shift+правая клавиша мыши.
Затем в созданном разделе создадим подраздел с именем command и зададим дефолтному параметру следующее значение:
cmd.exe /s /k pushd ″%L″
Это команда, которая запускает консоль cmd в выбранной директории.
Аналогичную структуру создаем для PowerShell, команда такая:
powershell.exe -NoExit -Command Set-Location -LiteralPath ′%L′
Осталось проверить результат. Для этого берем папку, открываем контекстное меню, выбираем пункт ″Open PowerShell here…″
и консоль PowerShell открывается сразу в выбранной папке. Очень удобно.
Для того, чтобы убрать пункт из меню, можно просто удалить созданную ветку. Если же требуется временно скрыть его, то можно добавить пустой строковый параметр с именем LegacyDisable. В этом случае пункт не отображается в меню, но остается в реестре.
Вот как то так.
Зачем заморачиваться с реестром? Когда достаточно в нужной папке зажать Shift + right click мыши, результат тот же.