Posso definir o PowerShell como 'padrão' no Windows 7?


9

Gostaria, por padrão, que o PowerShell fosse iniciado em vez de Command quando, digamos, executando um arquivo em lotes ou quando eu "Abrir janela de comando aqui", etc.

Alguma sugestão?


5
Eu não acho que o PowerShell pode interpretar arquivos em lote, então você provavelmente não deve abri-los.
Nhinkle 28/05

Respostas:


9

Acabei de fazer um teste muito rápido e a seguinte entrada do Registro adicionará um item "PowerShell aqui" ao menu de contexto de todas as pastas no explorer:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere]
@="&PowerShell here"

[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere\command]
@="cmd.exe /c start \"PS\" powershell.exe -NoExit -Command \"cd \\\"%1\\\"\""

Basta importá-lo para o registro. Estou usando cmd.exepara inicializar o PowerShell para evitar a necessidade de codificar o caminho.

Em relação aos scripts cmd / arquivos em lote. Eu acho que não faz muito sentido executar scripts CMD no PowerShell por padrão. Mas também pode ser possível modificando a HKCR\cmdfile\shell\openchave do registro


Obrigado! Vou tentar estes hoje à noite. A única razão pela qual desejo que os scripts sejam abertos no PowerShell é pela consistência e cooperação com minhas ferramentas de janelas. Você está certo que não há razão prática inerente. ;)
Ipsquiggle

0

Você não vai muito longe com a execução de arquivos em lote CMD no PowerShell.

Você pode tentar alterar a %COMSPEC%variável para apontar para o powershell.exeuso setx, mas não acho que demore muito para perceber que essa é uma péssima idéia e alterá-la novamente.

salve o arquivo como * .ps1 em vez de * .bat e ele usará o PowerShell


11
Por que é uma má ideia? Apenas curioso.
afrazier

@afrazier: Eu não experimentei mudar %COMSPEC%para um shell não compatível com CMD, mas presumo que alterá-lo para o PowerShell resultaria em .cmd/ .batarquivos tentando executar no PowerShell, para que falhassem. Eu instalei muitos softwares que precisavam usar arquivos em lote, portanto, seria uma má idéia. Além disso, sou um pouco tendencioso, pois uso o CMD o tempo todo (na verdade, o TCC, que é um superconjunto expandido), para o gerenciamento diário de arquivos - só uso o PowerShell para coisas do sistema, embora tenha muito mais a aprender, pois é tão poderoso em comparação.
Paradroid

11
Apenas para rir, mudei %ComSpec%para apontar para o PowerShell no meu sistema Win7. Os primeiros dois .cmdarquivos que testei funcionam muito bem. Eles envolvem cmdconstruções específicas ( formanipulação variável if), portanto o PS é aparentemente inteligente o suficiente para saber quando precisa chamar cmd.exe.
afrazier

Por exemplo, mudar %ComSpec%para o PowerShell quebra os comandos de controle de versão mercurial.
Esperança
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.