По умолчанию я бы хотел, чтобы PowerShell запускался вместо Command, когда, скажем, запускается командный файл, или когда я "открываю окно командной строки здесь" и т. Д.
Какие-либо предложения?
windows-7
powershell
batch-file
Ipsquiggle
источник
источник
Ответы:
Я только что провел очень быстрый тест, и следующая запись реестра добавит пункт «PowerShell here» в контекстное меню всех папок в проводнике:
Просто импортируйте его в реестр. Я использую
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.