Я б хотів, за замовчуванням, щоб PowerShell був запущений замість Command, коли, скажімо, працює пакетний файл або коли я "Відкрию вікно команд тут" тощо.
Будь-які пропозиції?
Я б хотів, за замовчуванням, щоб PowerShell був запущений замість Command, коли, скажімо, працює пакетний файл або коли я "Відкрию вікно команд тут" тощо.
Будь-які пропозиції?
Відповіді:
Я щойно зробив дуже швидкий тест, і наступна запис у реєстрі додасть пункт "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
ключа реєстру
Ви не збираєтеся дуже далеко запускати пакетні файли CMD в PowerShell.
Ви можете спробувати змінити %COMSPEC%
змінну на точку powershell.exe
використання setx
, але я не думаю, що вам знадобиться багато часу, щоб зрозуміти, що це дійсно погана ідея, і змінити її знову.
збережіть файл як * .ps1 замість * .bat, і він використовуватиме shellhell
%COMSPEC%
оболонки, що не сумісна з CMD, але я припускаю, що зміна її на PowerShell призведе до .cmd
/ .bat
файлів, які намагаються виконати в PowerShell, тому вони не зможуть. Я встановив багато програмного забезпечення, яке було потрібно для використання пакетних файлів, тому це було б поганою ідеєю. Крім того, я трохи упереджений, оскільки я весь час використовую CMD (фактично TCC, який є розширеним суперсет), для щоденного управління файлами - я використовую PowerShell лише для системних речей, хоча мені ще багато чому навчитися, як вона така потужна в порівнянні.
%ComSpec%
щоб вказати на PowerShell на своїй системі Win7. Перші пару .cmd
файлів, які я перевірив, працюють просто чудово. Вони включають cmd
специфічні конструкції ( for
, Зміна змінних маніпуляцій, if
), тому PS, мабуть, досить розумний, щоб знати, коли його потрібно викликати cmd.exe
.
%ComSpec%
на powerhell розбиває команди керування версійною версією.