如何从Windows资源管理器启动PowerShell?


259

是否可以通过Windows资源管理器在特定文件夹中启动PowerShell,例如右键单击文件夹并具有“在此文件夹中打开PowerShell”之类的选项?

每天第一次运行MSBuild时,必须将目录更改为我的项目文件夹真的很烦。


16
[Alt] [F + S + A]在当前文件夹中启动管理员Powershell。至少适用于Windows 10。
罗迪·卡西姆

Answers:


525

在Windows资源管理器中,只需转到顶部的地址栏(键盘快捷键:Alt+ DCtrl+ L),然后输入powershellpowershell_ise,然后按Enter。将打开一个PowerShell命令窗口,其中包含当前目录。


3
在Win 7上执行此操作时,Windows资源管理器将我带到名为PowerShell的文件夹中!
萨本库

35
如果您使用的是Windows 8或更高版本,则只需使用内置文件->“打开Windows Powershell”
Vivek Maharajh 2013年

7
如果您具有设置启动目录的PowerShell配置文件,它也将不起作用。如果您要在没有配置文件的情况下启动,则可以使用“ powershell -noprofile”,但是您将丢失配置文件中的所有设置。总会有一个权衡。
grahamesd

9
任何以管理员身份打开它的快捷方式吗?
Arsalan Ahmad

3
除了powershell之外,您还可以键入powershell_ise,它会更好,因为它最终可以调整大小并具有适当的字体。
Michael S.

106

只需添加一个反向技巧即可,在PowerShell提示符下,您可以执行以下操作:

ii .

要么

start .

在当前目录中打开Windows资源管理器窗口。


1
@EBGreen,是什么ii意思?
Pacerier,2014年

5
好了,在powershell提示符下,您可以简单地键入:Get-Command ii,然后您将看到它是Invoke-Item的别名。
EBGreen 2014年

78

如果您使用的是Windows 8或更高版本,则只需使用内置文件 →“打开Windows PowerShell”。

Alt+ F后跟R


1
对。我也固定了“以管理员身份启动”版本。
Vivek Maharajh 2014年

@Andrej,你怎么做到的?
Pacerier,2014年

1
@Pacerier,使用鼠标右键单击相应的菜单项(例如,在“打开Windows PowerShell”上)。
Andrej'1

@Andrej,“固定”是指“添加到快速访问工具栏”选项吗?
Pacerier,2015年

1
@Pacerier,我很确定那是他的意思。您也可以固定到任务栏。打开它后,右键单击任务栏上的图标并将其固定。
Vivek Maharajh,2015年


44

作为上述答案的替代方法(需要您每次键入PowerShell命令(powershell.exe)),可以像使用“ 在此处打开命令窗口 ”上下文菜单一样创建上下文菜单项。

这些命令放在三个注册表项中。每个键控制另一个Windows资源管理器对象的上下文菜单。第一个是您询问的:

  • HKCR \ Directory \ Background \ shell-这是资源管理器窗口本身的上下文菜单(即,在未选择任何项目(例如,右键单击窗口的空白区域)时显示的上下文菜单)。
  • HKCR \ Directory \ shell-这是Windows资源管理器中文件夹的上下文菜单。
  • HKCR \ Drive \ shell-这是Windows资源管理器根目录中驱动器图标的上下文菜单。

对于每个这些注册表项,您都可以添加一个子项,该子项将向上下文菜单添加“此处打开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的新文件。复制上面代码的确切文本,将其粘贴到新文件中,然后保存。(我本来会提供文件的副本,但是我无法弄清楚是否可以添加附件。)如果要从条目之一中排除命令,只需用分号将相应的部分注释掉。我的评论向您显示了每个部分。

保存文件后,通过双击运行它。当它询问时,告诉它继续。一旦运行,上下文菜单条目就会显示出来!

这是我的资源管理器窗口上下文菜单。我突出了控制台和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,则除了启动它们的目录外没有其他区别。“开始菜单”命令在用户目录中启动,而上下文菜单在本地目录中启动。
地理

@ProfK,可能是因为开始目录有所不同吗?如果您的用户目录中包含有关“ git”的内容,则可能有所不同。上下文菜单的全部目的是在LOCAL目录中打开PS,但是如果'git'命令根据您所在的目录而运行不同,则可能是问题所在。目录差异以及PS和PS ISE之间的差异是我唯一能想到的。
地理位置

@geo感谢所有反馈,但是我发现双击资源管理器中的html文件正在Notepad ++中打开它们。我将默认的“打开方式”设置为Chrome,但同时也安装了Posh-Git,现在我的Git帮助在Chrome中打开,而不是PS。可悲的是我不知道哪个改变了固定的东西。
ProfK 2015年

1
PS脚本添加提升的PS提示(删除非提升的HasLUAShield行)为@ powershellmagazine.com
James Manning


14

在Windows 10中,对于非管理员和管理员,都可以通过菜单栏找到命令提示符和Powershell提示符。这些选项会将其文件夹设置为资源管理器中当前选择的文件夹。

至少对于瑞典语版本,将通过打开Powershell Alt F+I。对于管理员来说,它是Alt F+S+P

Windows Powershell菜单

如果这些字符不正确,则可以按住Alt键查看正确的字符。每个步骤的菜单项上都会覆盖一个字符。


2
Windows 10(英语版)上的管理员powershell的[Alt] [F + S + A]
Rosdi Kasim 2016年

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'"

按住shift键并单击右键,在此处打开电源壳



3

在Windows 8.1和Server 2012 R2中甚至更容易。

只需执行一次:在任务栏上单击鼠标右键,选择“属性”。当我右键单击左下角或按Windows键+ X时,在“导航”选项卡中,打开菜单中的[✓]使用Windows PowerShell替换命令提示符

然后,当你想要一个PowerShell提示符下,命中Win+XI。(或者Win+XA对于Admin PowerShell提示)


4
不错的快捷方式,但是这不会在当前文件夹中启动PowerShell。
steenhulthin 2014年

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”键时可见,其他所有都是多余的。



2

另一个选择是Michael Murgolo在TechNet上的出色Elevation PowerToys,网址为http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx

它们包括“ PowerShell在此处提示”和“ PowerShell在此处提示管理员”。


尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会无效。
隆丁

发布链接时要考虑这一点。但是,链接的文章包含了有关Elevation PowerToys的权威下载,这答案的必要部分。
Mark Larson 2014年

2

通过在Windows 10中添加以下注册表项,我设法在上下文菜单中获得了“ 在此处打开PowerShell”选项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'"

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."
}

您可以从Windows资源管理器中下载如何启动PowerShell的详细脚本


1

一种相当简单的替代方法是通过快捷方式调用PowerShell。有一个标记为“开始于”的快捷方式属性,该属性指示调用快捷方式时要使用的目录(文件夹)。

如果“开始于”框为空,则表示使用当前目录。

当您首次以常规方式创建PowerShell的快捷方式时,“开始于”框将指定主目录。如果您将“开始于”框中的内容清除为空白,则可以使用powershell的快捷方式在当前目录中打开PS,无论使用哪种方式。

如果现在将该快捷方式复制到目标目录,并使用资源管理器调用它,则将启动指向目标目录的PS。

这个问题已经有了公认的答案,但是我提供了另一种方法。


1

对于自动热键用户,以下是我正在使用的代码段

按下时,它将打开PowerShell窗口Ctrl-Alt-T。(使用Win10测试)

如果您的“活动窗口”是Windows资源管理器窗口,则在当前文件夹中打开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

1

我很惊讶没有人给出这个答案,这是最简单的答案。(必须是年份。)

只需Shift +右键单击资源管理器。然后,您可以“在此处打开PowerShell窗口”。

默认情况下,它可以设置为命令提示符。如果是这样,您可以在Windows 10设置中更改此设置:转到“个性化”->“任务栏”,然后启用“当我右键单击开始按钮或按Windows键+ X时,使用菜单中的Windows PowerShell替换命令提示符”。


0

Windows 10使它变得更加容易。您可以:

  • 在文件夹上按[SHIFT] + [右键单击],会出现一个菜单项Open PowerShell window here

或者您可以:

  • File-> Open Windows PowerShell

还有奖金...

如果右键单击File-> Open Windows PowerShell,则可以Add to Quick Access Toolbar

在此处输入图片说明

在这里放了一个方便的图标:

在此处输入图片说明

现在,您只需单击该图标即可。:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.