Чи можна встановити PowerShell як "за замовчуванням" у Windows 7?


9

Я б хотів, за замовчуванням, щоб PowerShell був запущений замість Command, коли, скажімо, працює пакетний файл або коли я "Відкрию вікно команд тут" тощо.

Будь-які пропозиції?


5
Я не думаю, що powershell може інтерпретувати пакетні файли, тому ви, мабуть, не повинні робити їх відкритими.
nhinkle

Відповіді:


9

Я щойно зробив дуже швидкий тест, і наступна запис у реєстрі додасть пункт "PowerShell тут" до контекстного меню всіх папок в 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\\\"\""

Просто імпортуйте його до реєстру. Я використовую cmd.exeдля завантаження powerhell, щоб уникнути необхідності жорсткого кодування шляху.

Що стосується cmd-скриптів / пакетних файлів. Я думаю, що не має сенсу запускати сценарії CMD у програмі PowerShell за замовчуванням. Але це може бути можливим і шляхом зміни HKCR\cmdfile\shell\openключа реєстру


Дякую! Я спробую сьогодні спробувати сьогодні. Єдина причина, за якою я хочу відкрити сценарії в панелі повноважень, - це послідовність та співпраця з моїми інструментами вікон. Ви праві, що немає притаманної практичної причини. ;)
Ipsquiggle

0

Ви не збираєтеся дуже далеко запускати пакетні файли CMD в PowerShell.

Ви можете спробувати змінити %COMSPEC%змінну на точку powershell.exeвикористання setx, але я не думаю, що вам знадобиться багато часу, щоб зрозуміти, що це дійсно погана ідея, і змінити її знову.

збережіть файл як * .ps1 замість * .bat, і він використовуватиме shellhell


1
Чому це погана ідея? Просто цікаво.
afrazier

@afrazier: Я не експериментував зі зміною %COMSPEC%оболонки, що не сумісна з CMD, але я припускаю, що зміна її на PowerShell призведе до .cmd/ .batфайлів, які намагаються виконати в PowerShell, тому вони не зможуть. Я встановив багато програмного забезпечення, яке було потрібно для використання пакетних файлів, тому це було б поганою ідеєю. Крім того, я трохи упереджений, оскільки я весь час використовую CMD (фактично TCC, який є розширеним суперсет), для щоденного управління файлами - я використовую PowerShell лише для системних речей, хоча мені ще багато чому навчитися, як вона така потужна в порівнянні.
парадороїд

1
Тільки для хихикань я змінив, %ComSpec%щоб вказати на PowerShell на своїй системі Win7. Перші пару .cmdфайлів, які я перевірив, працюють просто чудово. Вони включають cmdспецифічні конструкції ( for, Зміна змінних маніпуляцій, if), тому PS, мабуть, досить розумний, щоб знати, коли його потрібно викликати cmd.exe.
afrazier

Наприклад, перехід %ComSpec%на powerhell розбиває команди керування версійною версією.
Надія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.