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

259

Есть ли способ запустить PowerShell в определенной папке из проводника Windows, например, щелкнуть правой кнопкой мыши папку и выбрать параметр, например «Открыть PowerShell в этой папке»?

Действительно раздражает необходимость менять каталоги в папке моего проекта при первом запуске MSBuild каждый день.

Джош Кодрофф
источник
16
[Alt] [F + S + A], чтобы запустить PowerShell администратора в текущей папке. Для Windows 10 по крайней мере.
Росди Касим
Это ответ: channel9.msdn.com/Shows/Defrag-Tools/...
HelpingHand

Ответы:

526

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

Эшвин Нанджаппа
источник
3
Когда я делаю это в Win 7, Windows Explorer переводит меня в папку, которая называется PowerShell!
Sabuncu
35
Если вы работаете в Windows 8 или более поздней версии, вы можете просто использовать встроенный Файл -> «Открыть Windows Powershell»
Vivek Maharajh
7
Это также не работает, если у вас есть профиль PowerShell, который устанавливает каталог запуска. Если вы хотите запустить без профиля, вы можете использовать «powershell -noprofile», но тогда вы потеряете все настройки, которые есть в профиле. Всегда есть компромисс.
grahamesd
9
любой ярлык, чтобы открыть его как администратор?
Арсалан Ахмад
3
Вместо powershell вы также можете набрать powershell_ise, что лучше, так как он, наконец, изменяет размеры и имеет правильный шрифт.
Майкл С.
106

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

ii .

или

start .

открыть окно проводника Windows в вашем текущем каталоге.

EBGreen
источник
1
@EBGreen, что iiзначит?
Pacerier
5
Ну, в командной строке powershell вы можете просто набрать: Get-Command ii, тогда вы увидите, что это псевдоним Invoke-Item.
EBGreen
79

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

Или Alt+ с Fпоследующим R.

Вивек Махарадж
источник
1
Ага. Я также закрепил версию "Launch as admin".
Вивек Махарадж,
@ Андрей, как ты это делаешь?
Pacerier
1
@Pacerier, с правой кнопкой мыши на соответствующем пункте меню (например, на «Открыть Windows PowerShell»).
Андрей
@Andrej, Под "закреплением" вы подразумеваете опцию "Добавить в панель быстрого доступа"?
Pacerier
1
@Pacerier, я уверен, что именно это он и имеет в виду. Вы также можете закрепить на панели задач. Открыв его, щелкните правой кнопкой мыши значок на панели задач и закрепите его.
Вивек Махарадж
57

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

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

Крис Саттон
источник
Можете ли вы предоставить резюме (например, ссылка гниль всегда проблема)?
Питер Мортенсен
Что такое "inf" (в этом контексте)?
Питер Мортенсен
44

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

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

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

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

Вот копия моего файла OpenPowerShellHere.reg , который помещает команду в контекстное меню каждого из объектов Explorer, фона окна, папки и значка диска:

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.reg . Скопируйте точный текст кода выше, вставьте его в новый файл и сохраните его. (Я бы включил копию файла, но я не мог выяснить, были ли вложения возможны.) Если вы хотите исключить команду из одной записи, просто закомментируйте соответствующий раздел точкой с запятой. Мои комментарии показывают вам каждый раздел.

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

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

Запись PowerShell в контекстном меню проводника

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

Примечание . Если у вас открыто окно проводника, вам может потребоваться закрыть его и снова открыть, чтобы изменения вступили в силу.

Примечание : в Windows 7 HKCR\Directory\Shellне работает, если вы используете инструментарий на стороне проводника

(т. е. щелчок документов под заголовком библиотеки)

Вы должны перемещаться с помощью Computer -> C: -> to -> Some -> Target -> Directory

гео
источник
Одна из проблем здесь - когда я открываю окно PS с помощью этого контекстного меню и вхожу git help <cmd>, он выводит HTML-файл справки в окне PS в виде обычного текста. Когда я использую меню «Пуск», это окно PS открывает браузер, как и предполагалось.
ProfK
@ProfK, я не уверен, что там происходит, так как я не использую «git», однако окно PS, открывающееся с помощью этого контекстного меню, идентично окну PS, которое открывается с помощью меню «Пуск», ЕСЛИ вы не использование PowerShell ISE при запуске из меню «Пуск». В этом случае вы можете изменить «powershell.exe» в приведенном выше файле реестра на «powershell_ise.exe». Если вы используете обычный PowerShell, то нет никакой разницы, кроме каталога, в котором они запускаются. Команда Start Menu запускается в вашем пользовательском каталоге, тогда как контекстное меню запускается в локальном каталоге.
Geo
@ProfK, возможно, что это стартовый каталог, который имеет значение? Если у вас есть что-то в вашем каталоге пользователя относительно git, возможно, в этом и заключается разница. Основная цель контекстного меню - открыть PS в каталоге LOCAL, но если команда 'git' выполняется по-разному в зависимости от каталога, в котором вы находитесь, это может быть проблемой. Разница в каталогах и разница между PS и PS ISE - единственное, о чем я могу думать.
Geo
@geo Спасибо за все отзывы, но я обнаружил, что двойной щелчок по html-файлам в Explorer открывал их в Notepad ++. Я установил по умолчанию «Открыть с помощью» в Chrome, но я также установил Posh-Git одновременно, и теперь моя справка по Git открывается в Chrome, а не в PS. Грустная сторона в том, что я не знаю, какие вещи изменились.
ProfK
1
Сценарий PS для добавления приглашения PS с повышенными правами (удалите строку HasLUAShield для не повышенных прав): @ powershellmagazine.com/2013/06/25/…
Джеймс Мэннинг,
33

Вы можете скачать файл inf отсюда - Представляем PowerShell Prompt Here

Гульзар Назим
источник
2
Можете ли вы предоставить резюме (например, ссылка гниль всегда проблема)?
Питер Мортенсен
14

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

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

Windows Powershell menu

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

По умолчанию
источник
2
Это [Alt] [F + S + A] для PowerShell администратора на моей Windows 10 (английская версия)
Росди Касим
6

Я хотел, чтобы это контекстное меню работало только при щелчке правой кнопкой мыши и удерживании клавиши «SHIFT», как работает встроенное контекстное меню «Открыть окно командной строки здесь».

Однако ни одно из предложенных решений этого не сделало, поэтому мне пришлось свернуть свой собственный .regфайл - скопируйте приведенный ниже файл, сохраните его как 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'"

Откройте Power Power здесь, удерживая Shift и нажав правую кнопку мыши

Даниэль Соколовский
источник
5

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

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

Стивен Муравски
источник
3

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

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

Тогда всякий раз , когда вы хотите PowerShell быстрого, удар Win+X, I. (ИлиWin+X , Aдля запроса администратора PowerShell)

Уоррен Румак
источник
4
Хороший ярлык, однако он не запускает PowerShell в текущей папке.
Steenhulthin
3

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

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

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», все остальное излишне.

ppw0
источник
3

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

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

http://tools.tortoisesvn.net/StExBar

Джош Кодрофф
источник
2

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

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

Марк Ларсон
источник
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится.
Лундин
Это правильный момент, который следует учитывать при публикации ссылки; однако связанная статья содержит официальную загрузку в Elevation PowerToys, которая является неотъемлемой частью ответа.
Марк Ларсон
2

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

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'"
Rhys
источник
1
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 Explorer

откровенный загар
источник
1

Одна довольно простая альтернатива - вызывать PowerShell с помощью ярлыка. Существует свойство ярлыка «Начать с», в котором указано, какой каталог (папка) использовать при вызове ярлыка.

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

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

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

Там уже принят ответ на этот вопрос, но я предлагаю это как-то иначе.

Уолтер Митти
источник
1

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

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

Если ваше «активное окно» является окном Windows Explorer, то PowerShell открывается в текущей папке . В противном случае просто откройте PowerShell в какой-либо папке по умолчанию .

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

; 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
NP8
источник
1

Я удивлен, что никто не дал этот ответ, он самый простой. (Должно быть, год.)

Просто Shift + правый клик в проводнике. Затем вы можете «Открыть окно PowerShell здесь».

По умолчанию он может быть настроен на командную строку. Если это так, вы можете изменить это в настройках Windows 10: перейдите в раздел «Персонализация» -> «Панель задач» и включите «Заменить командную строку Windows PowerShell в меню, когда я щелкну правой кнопкой мыши кнопку« Пуск »или нажмем клавишу Windows + X».

Андрей
источник
1

Windows 10 сделала это намного проще. Вы также можете:

  • [SHIFT] + [Щелкните правой кнопкой мыши] на папке, и вы получите пункт меню Open PowerShell window here.

Или вы можете:

  • File-> Open Windows PowerShell.

И за бонус ...

Если вы щелкните правой кнопкой мыши File->Open Windows PowerShell , то вы можете Add to Quick Access Toolbar:

введите описание изображения здесь

Который ставит здесь удобную иконку:

введите описание изображения здесь

И теперь вы можете просто нажать на эту иконку. :)

Craigo
источник