Czy mogę ustawić PowerShell jako „domyślny” w Windows 7?

9

Domyślnie chciałbym, aby PowerShell był uruchamiany zamiast Command, gdy powiedzmy, uruchamiając plik wsadowy lub gdy „Otwieram okno poleceń tutaj” itp.

Jakieś sugestie?

Ipsquiggle
źródło
5
Nie sądzę, że PowerShell może interpretować pliki wsadowe, więc prawdopodobnie nie powinieneś ich otwierać.
nhinkle

Odpowiedzi:

9

Właśnie wykonałem bardzo szybki test i następujący wpis rejestru doda pozycję „PowerShell tutaj” do menu kontekstowego wszystkich folderów w eksploratorze:

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

Po prostu zaimportuj go do rejestru. Używam cmd.exedo ładowania PowerShell, aby uniknąć konieczności kodowania ścieżki na stałe.

Odnośnie skryptów cmd / plików wsadowych. Myślę, że domyślnie nie ma sensu uruchamiać skryptów CMD w PowerShell. Ale może to być również możliwe poprzez modyfikację HKCR\cmdfile\shell\openklucza rejestru

SkyBeam
źródło
Dzięki! Spróbuję dziś wieczorem. Jedynym powodem, dla którego chcę otwierać skrypty w PowerShell, jest spójność i współpraca z moimi narzędziami okienkowymi. Masz rację, że nie ma żadnego praktycznego uzasadnienia. ;)
Ipsquiggle
0

Nie zajdziesz daleko za sprawą uruchamiania plików wsadowych CMD w PowerShell.

Możesz spróbować zmienić %COMSPEC%zmienną tak, by wskazywała na powershell.exeużycie setx, ale nie sądzę, że zajmie ci to dużo czasu, zanim zorientujesz się, że to naprawdę zły pomysł, i zmień ją ponownie.

zapisz plik jako * .ps1 zamiast * .bat, a on użyje programu PowerShell

paradroid
źródło
1
Dlaczego to zły pomysł? Po prostu ciekawy.
afrazier
@afrazier: Nie eksperymentowałem ze zmianą %COMSPEC%na powłokę niezgodną z CMD, ale zakładam, że zmiana na PowerShell spowodowałaby, że .cmd/ .batpliki próbowałyby uruchomić się w PowerShell, więc nie powiodłyby się. Zainstalowałem wiele programów, które wymagały użycia plików wsadowych, więc zrobienie tego byłoby złym pomysłem. Jestem również nieco stronniczy, ponieważ cały czas używam CMD (właściwie TCC, który jest rozszerzonym nadzbiorem), do codziennego zarządzania plikami - używam PowerShell tylko do rzeczy systemowych, chociaż mam o wiele więcej do nauczenia się, ponieważ jest tak potężny w porównaniu.
paradroid
1
Tylko na chichoty zmieniłem, %ComSpec%aby wskazać PowerShell w moim systemie Win7. Pierwsze kilka .cmdplików, które przetestowałem, działa dobrze. Obejmują one cmdkonstrukty specyficzne ( for, Zmienna manipulacja if), więc PS jest najwyraźniej wystarczająco inteligentny, aby wiedzieć, kiedy musi się wywołać cmd.exe.
afrazier
Na przykład przejście %ComSpec%na PowerShell przerywa komendy kontroli wersji rtęciowej.
Hope