¿Puedo configurar PowerShell como 'predeterminado' en Windows 7?

9

Me gustaría, de forma predeterminada, que se inicie PowerShell en lugar de Command cuando, por ejemplo, ejecute un archivo por lotes, o cuando "abra la ventana de comandos aquí", etc.

¿Alguna sugerencia?

Ipsquiggle
fuente
55
No creo que powershell pueda interpretar archivos por lotes, por lo que probablemente no debería abrirlos.
nhinkle

Respuestas:

9

Acabo de hacer una prueba muy rápida y la siguiente entrada del registro agregará un elemento "PowerShell aquí" al menú contextual de todas las carpetas en el explorador:

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\\\"\""

Solo impórtelo al registro. Estoy usando cmd.exebootstrap powershell para evitar tener que codificar la ruta.

En cuanto a scripts cmd / archivos por lotes. Creo que no tiene mucho sentido ejecutar scripts CMD dentro de PowerShell por defecto. Pero también podría ser posible modificando la HKCR\cmdfile\shell\openclave de registro

SkyBeam
fuente
¡Gracias! Voy a intentar esto esta noche. La única razón por la que quiero que se abran los scripts en powershell es por la consistencia y cooperación con mis herramientas de ventanas. Tienes razón en que no hay una razón práctica inherente. ;)
Ipsquiggle
0

No va a llegar muy lejos con la ejecución de archivos por lotes CMD en PowerShell.

Puede intentar cambiar la %COMSPEC%variable para que apunte al powershell.exeuso setx, pero no creo que le lleve mucho tiempo darse cuenta de que esta es una idea realmente mala y cambiarla nuevamente.

guarde el archivo como * .ps1 en lugar de * .bat y usará powershell

paradroid
fuente
1
por qué es una mala idea? Sólo curioso.
Afrazier
@afrazier: no he experimentado el cambio %COMSPEC%a un shell no compatible con CMD, pero supongo que cambiarlo a PowerShell provocaría que .cmd/ .batarchivos intenten ejecutarse en PowerShell, por lo que fallarían. He instalado una gran cantidad de software que necesitaba usar archivos por lotes, por lo que sería una mala idea hacerlo. Además, soy un poco parcial, ya que uso CMD todo el tiempo (en realidad, TCC, que es un superconjunto expandido), para la administración diaria de archivos: solo uso PowerShell para cosas del sistema, aunque tengo mucho más que aprender, ya que Es tan poderoso en comparación.
paradroid
1
Solo por risas, he cambiado %ComSpec%para apuntar a PowerShell en mi sistema Win7. Los primeros .cmdarchivos que probé funcionan bien. Implican cmdconstrucciones específicas ( formanipulación variable if), por lo que PS es aparentemente lo suficientemente inteligente como para saber cuándo necesita invocar cmd.exe.
Afrazier
Por ejemplo, cambiar %ComSpec%a powershell rompe los comandos de control de versión mercurial.
Esperanza