Alterando o shell da linha de comandos padrão no Windows

4

Suponha que eu (ou qualquer processo em execução) quisesse lançar um shell no Windows (7) e emitir um comando, há várias opções disponíveis. Por exemplo, pode-se:

  1. Abra o menu Iniciar, digite cmd e pressione Enter ;
  2. Iniciar o prompt de comando por meio de um atalho;
  3. Abra o prompt de comando em uma ferramenta de terceiros (como o Launchy) ou
  4. Emita alguns comandos na ferramenta Executar do Windows ( Win + R ), que inicia o prompt, emite o comando e retorna

Todos os métodos acima lançarão (por padrão) cmd.exe (normalmente localizado no diretório Windows\System32 ).

Recentemente, comecei a favorecer shells de linha de comando alternativos, como o próprio PowerShell da Microsoft. No entanto, o que mais me frustra sobre o uso dessas ferramentas é que, por padrão, parece que eu tenho que sair do meu caminho para executar comandos por elas.

Existe alguma maneira de substituir o comportamento padrão da execução de cmd.exe por outro shell , como o PowerShell ou o Cygwin? Não apenas os comandos que eu poderia emitir a partir do menu Iniciar ou de um iniciador serão executados nesse shell, mas se outros aplicativos quiserem abrir um shell, ele será aberto no shell padrão.

Para ser claro, seria bom se houvesse uma maneira limpa de abordar isso (ou seja, uma configuração do registro ou opção de configuração em algum lugar, em vez de simplesmente substituir o arquivo executável).

    
por gpmcadam 31.07.2010 / 22:16

1 resposta

6

.1. Bring up the start menu, type cmd, and hit Enter;

Digite powershell em vez disso.

.2. Launch the command prompt via a shortcut;

Altere o alvo do atalho.

.3. Bring up the command prompt in a third party tool (such as Launchy), or;

IIRC, Launchy apenas usa atalhos do menu Iniciar. Algumas outras ferramentas são codificadas para executar cmd.exe .

.4. Issue some commands in Windows' Run tool (Win+R), which launches the prompt, issues the command and then returns

"Executar" não abre um shell, cmd ou qualquer outro, a menos que você tenha pedido especificamente digitando o nome dele. Ele executa o programa fornecido diretamente (AFAIK, usando ShellExcuteEx() ).

A janela preta é um Console do Windows . não significa que há cmd.exe em execução no interior; poderia ter qualquer qualquer programa de consola. (Exatamente o mesmo é com terminais Unix; eles podem ter qualquer programa em execução, não necessariamente um shell.)

Dito isso, alguns programas ainda podem honrar a %COMSPEC% variável de ambiente .

    
por 01.08.2010 / 00:11