Puis-je définir PowerShell comme «par défaut» dans Windows 7?

9

Je voudrais, par défaut, que PowerShell soit lancé au lieu de Command lorsque, par exemple, en exécutant un fichier batch, ou lorsque j'ouvre la fenêtre de commande ici, etc.

Aucune suggestion?

Ipsquiggle
la source
5
Je ne pense pas que PowerShell puisse interpréter des fichiers batch, vous ne devriez donc pas forcément les ouvrir.
nhinkle

Réponses:

9

Je viens de faire un test très rapide et l'entrée de registre suivante ajoutera un élément "PowerShell ici" au menu contextuel de tous les dossiers dans l'explorateur:

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

Importez-le simplement dans le registre. J'utilise cmd.exepour bootstrap powershell afin d'éviter d'avoir à coder en dur le chemin.

Concernant les scripts cmd / fichiers batch. Je pense que cela n'a pas beaucoup de sens d'exécuter des scripts CMD dans PowerShell par défaut. Mais cela pourrait aussi être possible en modifiant la HKCR\cmdfile\shell\openclé de registre

SkyBeam
la source
Merci! Je vais les essayer ce soir. La seule raison pour laquelle je souhaite que les scripts s'ouvrent dans PowerShell est pour la cohérence et la coopération avec mes outils de fenêtrage. Vous avez raison, il n'y a pas de raison pratique inhérente. ;)
Ipsquiggle
0

Vous n'irez pas très loin avec l'exécution de fichiers batch CMD dans PowerShell.

Vous pouvez essayer de changer la %COMSPEC%variable pour pointer vers l' powershell.exeutilisation setx, mais je ne pense pas qu'il vous faudra longtemps pour réaliser que c'est une très mauvaise idée et la changer à nouveau.

enregistrez le fichier sous * .ps1 au lieu de * .bat et il utilisera powershell

paradroid
la source
1
Pourquoi est-ce une mauvaise idée? Juste curieux.
afrazier
@afrazier: Je n'ai pas essayé de passer %COMSPEC%à un shell non compatible CMD, mais je suppose que le changer en PowerShell entraînerait l' exécution de .cmd/ .batfiles dans PowerShell, donc ils échoueraient. J'ai installé beaucoup de logiciels qui devaient utiliser des fichiers batch, donc ce serait une mauvaise idée. De plus, je suis un peu biaisé, car j'utilise CMD tout le temps (en fait, TCC, qui est un surensemble étendu), pour la gestion quotidienne des fichiers - j'utilise uniquement PowerShell pour les choses système, bien que j'aie beaucoup plus à apprendre, comme c'est tellement puissant en comparaison.
paradroid
1
Juste pour rire, j'ai changé %ComSpec%pour pointer vers PowerShell sur mon système Win7. Les deux premiers .cmdfichiers que j'ai testés fonctionnent très bien. Ils impliquent des cmdconstructions spécifiques ( for, manipulation de variables, if), donc PS est apparemment assez intelligent pour savoir quand il doit l'invoquer cmd.exe.
afrazier
Par exemple, le passage %ComSpec%à PowerShell rompt les commandes de contrôle de la version mercurielle.
Hope