Изменение оболочки командной строки по умолчанию в Windows

4

Предположим, что я (или любой работающий процесс) хотел запустить оболочку в Windows (7) и выполнить команду, есть несколько доступных вариантов. Например, можно:

  1. Откройте меню «Пуск», введите cmdи нажмите Enter;
  2. Запустите командную строку через ярлык;
  3. Откройте командную строку в стороннем инструменте (например, Launchy) или;
  4. Выполните некоторые команды в инструменте запуска Windows ( Win+ R), который запускает приглашение, выполняет команду и затем возвращает

Все вышеперечисленные методы (по умолчанию) будут запущены cmd.exe(обычно находятся в Windows\System32каталоге).

Недавно я начал отдавать предпочтение альтернативным оболочкам командной строки, таким как собственный PowerShell от Microsoft. Однако больше всего меня разочаровывает использование этих инструментов, так как мне кажется, что мне приходится изо всех сил запускать команды через них по умолчанию.

Есть ли способ заменить поведение по умолчанию при запуске cmd.exeдругой оболочкой , такой как PowerShell или Cygwin? В этой оболочке будут запускаться не только команды, которые я могу выполнить из меню «Пуск», либо из панели запуска, но если другие приложения захотят открыть оболочку, она откроется в указанной оболочке по умолчанию.

Чтобы было ясно, было бы хорошо, если бы был какой-то чистый способ приблизиться к этому (то есть параметр реестра или вариант конфигурации где-то, а не просто заменить исполняемый файл).

gpmcadam
источник
Не совсем то, что вы просили, но лучше: code.google.com/p/conemu-maximus5
krowe
Средство запуска Windows не использует cmd.exe. Все, что вы вводите, просто передается функции ShellExec, которая является частью shell32.dll. В качестве доказательства, команда "dir" работает в среде командной строки, но не работает в командной строке. Это потому, что «dir» не является отдельным исполняемым файлом - это команда, реализованная в cmd.exe. И «dir» не понимается ShellExec.
Джейми Ханрахан

Ответы:

7

0,1. Откройте меню «Пуск», введите cmdи нажмите Enter;

Напечатайте powershellвместо этого.

0,2. Запустите командную строку через ярлык;

Изменить цель ярлыка.

0,3. Откройте командную строку в стороннем инструменте (например, Launchy) или;

IIRC, Launchy просто использует ярлыки из меню Пуск. Некоторые другие инструменты жестко запрограммированы для запуска cmd.exe.

+0,4. Выполните некоторые команды в средстве запуска Windows (Win + R), которое запускает приглашение, выполняет команду и затем возвращает

«Выполнить» не открывает оболочку cmdили любую другую, если вы специально не запросили ее, введя ее имя. Он запускает данную программу напрямую (AFAIK, используя ShellExcuteEx()).

Черное окно - Консоль Windows . Это не значит, что там cmd.exeбегают; это может быть любая консольная программа. (Точно так же и с терминалами Unix; у них может быть запущена любая программа, не обязательно оболочка.)


Тем не менее, некоторые программы могут по-прежнему %COMSPEC%учитывать переменную среды .

grawity
источник
Я думаю, моя проблема в первую очередь с другими приложениями Например, в проводнике удерживайте Shift, щелкните правой кнопкой мыши, а затем нажмите Open command window here. По умолчанию он открывается cmd.exe. Что говорит Windows, чтобы сделать это, это %COMSPECпеременная среды?
gpmcadam
@Bauer: Правый щелчок устанавливается в реестре, командах, связанных с типом файла «Папка» или «Каталог» (позже - только папки файловой системы) или расширением Проводника.
Ричард
@Richard: было бы Directory. («Открыть командную строку» не имеет никакого смысла для папок, не относящихся к файловой системе.)
grawity
@Bauer: В Windows Vista и новее, он, вероятно, жестко запрограммирован в оболочку Explorer (но попробуйте изменить в %COMSPEC%любом случае). В XP и старше это либо командный глагол, Registry\HKCR\Directory\shellлибо расширение оболочки Explorer, как сказал @Richard.
2010 года
1
@Gravity: <pedantic> PowerShell (если назвать один пример) не ограничивается каталогами файловой системы: cd HLKM:\software\classesработает отлично.
Ричард