По умолчанию я бы хотел, чтобы PowerShell запускался вместо Command, когда, скажем, запускается командный файл, или когда я "открываю окно командной строки здесь" и т. Д.
Какие-либо предложения?
По умолчанию я бы хотел, чтобы PowerShell запускался вместо Command, когда, скажем, запускается командный файл, или когда я "открываю окно командной строки здесь" и т. Д.
Какие-либо предложения?
Ответы:
Я только что провел очень быстрый тест, и следующая запись реестра добавит пункт «PowerShell here» в контекстное меню всех папок в проводнике:
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
для начальной загрузки PowerShell, чтобы избежать жесткого кодирования пути.
Относительно cmd скриптов / пакетных файлов. Я думаю, что по умолчанию не имеет смысла запускать CMD-скрипты в PowerShell. Но это также возможно, изменив HKCR\cmdfile\shell\open
раздел реестра.
Вы не собираетесь слишком далеко продвигаться с запуском командных файлов CMD в PowerShell.
Вы можете попробовать изменить %COMSPEC%
переменную так, чтобы она указывала на powershell.exe
использование setx
, но я не думаю, что вам понадобится много времени, чтобы осознать, что это действительно плохая идея, и снова изменить ее.
сохраните файл как * .ps1 вместо * .bat, и он будет использовать powershell
%COMSPEC%
на не-CMD-совместимую оболочку, но я предполагаю, что изменение его на PowerShell приведет к попытке .cmd
/ .bat
files выполнить в PowerShell, поэтому они потерпят неудачу. Я установил много программного обеспечения, в котором нужно было использовать командные файлы, поэтому это было бы плохой идеей. Кроме того, я немного предвзят, поскольку я все время использую CMD (на самом деле, TCC, который является расширенным расширенным набором) для повседневного управления файлами - я использую PowerShell только для системных задач, хотя мне еще многое предстоит узнать, так как это так сильно по сравнению.
%ComSpec%
чтобы указать на PowerShell в моей системе Win7. Первые пару .cmd
файлов, которые я тестировал, работают нормально. Они включают в себя cmd
-специфичные конструкции ( for
, манипуляции с переменными, if
), поэтому PS, по-видимому, достаточно умен, чтобы знать, когда ему нужно вызывать cmd.exe
.
%ComSpec%
на powershell нарушает команды управления версиями mercurial.