Как запустить PowerShell из Проводника Windows?

есть ли способ запустить PowerShell в определенной папке из Проводника Windows, например, щелкнуть правой кнопкой мыши в папке и иметь такую опцию, как "открыть PowerShell в этой папке"?

Это действительно раздражает, чтобы изменить каталоги в мою папку проекта при первом запуске MSBuild каждый день.

17 ответов


в Проводнике Windows просто перейдите в адресную строку вверху (сочетания клавиш:Alt+D или Ctrl+L) и типа powershell или powershell_ise и нажать Enter. Откроется окно команд PowerShell с текущим каталогом.


просто добавить в обратном порядке, как трюк, в командной строке PowerShell вы можете сделать:

ii .

или

start .

чтобы открыть окно Проводника Windows в текущем каталоге.


Если вы используете Windows 8 или более поздней версии, вы можете просто использовать встроенный → "Открыть Windows PowerShell".

или Alt + F следовал по R.


http://www.hanselman.com/blog/IntroducingPowerShellPromptHere.aspx

Скотт Хансельман имеет очень простой inf, который сделает это за вас. Если вы хотите настроить скрипт, очень легко пойти и отредактировать inf для настроек.


в качестве альтернативы приведенному выше ответу, который требует ввода команды PowerShell (powershell.exe) каждый раз, вы можете создать контекстного меню так же, как с " открыть командное окно здесь" контекстном меню.

есть три раздела реестра, где эти команды идут. Каждая клавиша управляет контекстным меню другого объекта Проводника Windows. Первый-это тот, кого ты спросил. о компании:

  • HKCR\каталог\фон\оболочка - Это контекстное меню само окно Проводника (то есть контекстное меню, которое отображается, когда элемент не выбран, например, при щелчке правой кнопкой мыши в пустой области окна).
  • HKCR\каталог\shell - Это контекстное меню папок в Проводнике Windows.
  • HKCR\Drive\shell - Это контекстное меню для иконки дисков в корень Проводника Windows.

для каждого из этих разделов реестра вы можете добавить подраздел, который добавит команду " Открыть окно PowerShell здесь "в контекстное меню, так же как у вас есть контекстное меню" Открыть окно команды здесь".

вот копия моего OpenPowerShellHere.Редж!--5--> файл, который помещает команду в контекстное меню каждого из объектов проводника, фона окна, папки и значка диска:

Windows Registry Editor Version 5.00

;
; Add context menu entry to Windows Explorer background
;
[HKEY_CLASSES_ROOT\Directory\Background\shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\powershell\command]
@="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

;
; Add context menu entry to Windows Explorer folders
;
[HKEY_CLASSES_ROOT\Directory\shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\powershell\command]
@="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

;
; Add context menu entry to Windows Explorer drive icons
;
[HKEY_CLASSES_ROOT\Drive\shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Drive\shell\powershell\command]
@="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

Так, с любимый текстовый редактор, создайте новый файл с именем OpenPowerShellHere.Редж!--5-->. Скопируйте точно текст кода выше, вставьте его в новый файл и сохраните его. (Я бы включил копию файла, но я не мог понять, возможны ли вложения.) Если вы хотите исключить команда из одной из записей, просто прокомментируйте соответствующий раздел с запятой. Мои комментарии показывают вам каждый раздел.

после сохранения файл, запустите его, дважды щелкнув по нему. Когда он спросит, скажите ему продолжать. Как только вы запустите его, появятся записи контекстного меню!

вот мое контекстное меню окна Проводника. Я выделил команды консоли и PowerShell. Как вы можете видеть, вы также можете добавить запись контекстного меню для запуска окна с повышенными правами, т. е. Запуск от имени администратора.

PowerShell entry in Explorer context menu

Примечание: отображаются элементы контекстного меню в алфавитном порядке, на основе их ключей реестра. Клавишу имя командной оболочки "Запуск от имени", поэтому он появляется после записи PowerShell.


вы можете скачать inf-файл отсюда - Представляем Подсказку PowerShell Здесь


в Windows 10 как командная строка, так и приглашение powershell можно найти через строку меню, как для не-администратора, так и для администратора. Эти параметры будут иметь свою папку, установленную в текущей выбранной папке из проводника.

по крайней мере для шведской версии powershell открывается с помощью Alt F+I. Для администратора powershell это Alt F+S+P.

Windows Powershell menu

Если эти не правильные символы, которые вы можете нажать и удерживать Alt ключ, чтобы увидеть правильные символы. для каждого шага будет символ, накладывающийся на пункт меню.


Я хотел, чтобы это контекстное меню работает только когда Правой Кнопкой Мыши и удерживая "SHIFT", как работает встроенное контекстное меню "Открыть командное окно здесь".

однако ни одно из предоставленных решений не сделало этого, поэтому мне пришлось свернуть свой собственный .reg file-скопируйте ниже, сохраните его как power-shell-here-on-shift.reg и дважды щелкните по нему.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\powershell]
@="Open PowerShell here"
"NoWorkingDirectory"=""
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\shell\powershell\command]
@="C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath '%L'"

open power shell here while holding shift and pressing right click


Это еще проще в Windows 8.1 и Server 2012 R2.

сделать это один раз: Щелкните правой кнопкой мыши на панели задач, выберите "Свойства". На вкладке навигация включите [✓] замените командную строку Windows PowerShell в меню при щелчке правой кнопкой мыши в левом нижнем углу или нажмите клавишу Windows+X.

затем, когда вы хотите приглашение PowerShell, нажмите Win+X, Я. (Или Win+X, A для PowerShell администратора подскажите)


попробовать PowerShell PowerToy... Он добавляет пункт контекстного меню Откройте PowerShell Здесь.

или вы можете создать ярлык, который открывает PowerShell с папкой Start In, являющейся вашей папкой проектов.


есть расширение Проводника Windows, сделанное чуваком, который делает инструменты для SVN, которые, по крайней мере, откроют окно командной строки.

Я еще не пробовал, поэтому я не знаю, будет ли это делать PowerShell, но я хотел поделиться любовью с моими братьями по переполнению стека:

http://tools.tortoisesvn.net/StExBar


другой вариант превосходные PowerToys высоты Майклом Murgolo на TechNet на http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx.

Они включают приглашение PowerShell здесь и приглашение PowerShell здесь в качестве администратора.


ниже приводится краткое (и обновленное) суммирование предыдущих решений. Вот что нужно сделать:

добавьте эти строки и их соответствующие родительские ключи:

pwrshell\(Default) < Open PowerShell Here
pwrshell\command\(Default) < powershell -NoExit -Command Set-Location -LiteralPath '%V'
pwrshelladmin\(Default) < Open PowerShell (Admin)
pwrshelladmin\command\(Default) < powershell -Command Start-Process -verb runAs -ArgumentList '-NoExit','cd','%V' powershell

в этих местах

HKCR\Directory\shell (for folders)
HKCR\Directory\Background\shell (Explorer window)
HKCR\Drive\shell (for root drives)

вот именно. Добавьте "расширенные" строки, чтобы команды были видны только при удержании клавиши "Shift", все остальное лишнее.


добавив разделы реестра ниже, в Windows 10, мне удалось получить Откройте PowerShell Здесь в своем SHIFT + RClick контекстное меню. Просто скопируйте их в пустой файл блокнота, а затем сохраните как .reg file и запустите файл, чтобы добавить ключ, и он должен работать оттуда. Некоторые из этих других ответов говорят, чтобы добавить ключ в HKCR\каталог\shell но я обнаружил, что для меня это работает только с ключами, входящими в в HKLM классы программного обеспечения\\\каталог\Шелл

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\powershell]
"Extended"=""
"NoWorkingDirectory"=""
@="Open PowerShell here"
"Icon"="%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\powershell\command]
@="C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\powershell]
@="Open PowerShell here"
"Extended"=""
"Icon"="%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe"
"NoWorkingDirectory"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\powershell\command]
@="C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
if(-not (Test-Path -Path "HKCR:\Directory\shell$KeyName"))
{
    Try
    {
        New-Item -itemType String "HKCR:\Directory\shell$KeyName" -value "Open PowerShell in this Folder" -ErrorAction Stop
        New-Item -itemType String "HKCR:\Directory\shell$KeyName\command" -value "$env:SystemRoot\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -command Set-Location '%V'" -ErrorAction Stop
        Write-Host "Successfully!"
     }
     Catch
     {
         Write-Error $_.Exception.Message
     }
}
else
{
    Write-Warning "The specified key name already exists. Type another name and try again."
}

вы можете скачать подробный скрипт из Как запустить PowerShell из Проводника Windows


одна довольно простая альтернатива-вызвать PowerShell с помощью ярлыка. Существует свойство ярлыка с надписью "Start in", которое говорит, какой каталог(папка) использовать при вызове ярлыка.

Если поле "пуск" пустое, это означает использование текущего каталога.

когда вы впервые создаете ярлык для PowerShell обычным способом, поле пуск в указывает домашний каталог. Если вы отключите поле пуск в, теперь у вас есть ярлык powershell, который открывается PS в текущем каталоге, что бы это ни было.

Если вы скопируете этот ярлык в целевой каталог и используете explorer для его вызова, вы запустите PS, который указывает на целевой каталог.

уже есть принятый ответ на этот вопрос, но я предлагаю это как другой способ.


для пользователей autohotkey, heres фрагмент, который я использую

Он открывает окно PowerShell, при нажатии Ctrl-Alt-T. (Проверено с Win10)

если ваше "активное окно" является проводником Windows, то PowerShell открывается в текущей папки. В противном случае, просто откройте PowerShell в некоторых папку по умолчанию.

использование: 1) Установите AutoHotkey и скопируйте его в myscript.ahk 2) заменить <DefaultPath> С путем по вашему выбору. Три) Запустить сценарий.

; Ctrl-Alt-T opens PowerShell in the current folder, if using Windows Explorer. Otherwise, just open the Powershell.
^!T::
if WinActive("ahk_class CabinetWClass") and WinActive("ahk_exe explorer.exe")
{
    KeyWait Control
    KeyWait Alt
    Send {Ctrl down}l{Ctrl up}
    Send powershell{Enter}
}
else
{
    psScript =
    (
    cd 'C:\<DefaultPath>'
    ls
    )
    Run "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" -NoExit -Command &{%psScript%}
}
return