Предположим, что я (или любой работающий процесс) хотел запустить оболочку в Windows (7) и выполнить команду, есть несколько доступных вариантов. Например, можно:
- Откройте меню «Пуск», введите
cmd
и нажмите Enter; - Запустите командную строку через ярлык;
- Откройте командную строку в стороннем инструменте (например, Launchy) или;
- Выполните некоторые команды в инструменте запуска Windows ( Win+ R), который запускает приглашение, выполняет команду и затем возвращает
Все вышеперечисленные методы (по умолчанию) будут запущены cmd.exe
(обычно находятся в Windows\System32
каталоге).
Недавно я начал отдавать предпочтение альтернативным оболочкам командной строки, таким как собственный PowerShell от Microsoft. Однако больше всего меня разочаровывает использование этих инструментов, так как мне кажется, что мне приходится изо всех сил запускать команды через них по умолчанию.
Есть ли способ заменить поведение по умолчанию при запуске cmd.exe
другой оболочкой , такой как PowerShell или Cygwin? В этой оболочке будут запускаться не только команды, которые я могу выполнить из меню «Пуск», либо из панели запуска, но если другие приложения захотят открыть оболочку, она откроется в указанной оболочке по умолчанию.
Чтобы было ясно, было бы хорошо, если бы был какой-то чистый способ приблизиться к этому (то есть параметр реестра или вариант конфигурации где-то, а не просто заменить исполняемый файл).
Ответы:
Напечатайте
powershell
вместо этого.Изменить цель ярлыка.
IIRC, Launchy просто использует ярлыки из меню Пуск. Некоторые другие инструменты жестко запрограммированы для запуска
cmd.exe
.«Выполнить» не открывает оболочку
cmd
или любую другую, если вы специально не запросили ее, введя ее имя. Он запускает данную программу напрямую (AFAIK, используяShellExcuteEx()
).Черное окно - Консоль Windows . Это не значит, что там
cmd.exe
бегают; это может быть любая консольная программа. (Точно так же и с терминалами Unix; у них может быть запущена любая программа, не обязательно оболочка.)Тем не менее, некоторые программы могут по-прежнему
%COMSPEC%
учитывать переменную среды .источник
Shift
, щелкните правой кнопкой мыши, а затем нажмитеOpen command window here
. По умолчанию он открываетсяcmd.exe
. Что говорит Windows, чтобы сделать это, это%COMSPEC
переменная среды?Directory
. («Открыть командную строку» не имеет никакого смысла для папок, не относящихся к файловой системе.)%COMSPEC%
любом случае). В XP и старше это либо командный глагол,Registry\HKCR\Directory\shell
либо расширение оболочки Explorer, как сказал @Richard.cd HLKM:\software\classes
работает отлично.