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?

Ipsquiggle
fonte
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

SkyBeam
fonte
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

paradroid
fonte
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