在上下文菜单中添加“Open Anaconda Prompt here”(Windows)

问题描述 投票:10回答:2

我想在我的上下文菜单(Windows 7和10)上添加一个选项,当我右键单击该文件夹时,将Anaconda Prompt打开到文件位置,但我找不到正确的注册表项。

这是我所知道的怎么做:

  • 将项添加到上下文菜单中,该菜单将在文件夹位置打开正常的命令窗口
  • 从cmd打开Anaconda提示符(运行他们的“activate.bat”文件)

我无法弄清楚的是如何将这些步骤组合到一个注册表项中,这样我就可以打开一个Anaconda Prompt然后在该提示符下cd到当前文件夹。但也许我正以错误的方式接近这一点。

来自互联网大师的帮助表示赞赏。

windows anaconda contextmenu registrykey
2个回答
8
投票

在最近的Anaconda版本(我在conda 4.5.5),他们已经改变了行为和Anaconda Prompt的快捷方式,所以新程序实际上比bdforbes描述的要简单一些。

在文件夹中启动Anaconda Prompt的新方法是

cmd.exe /K %%USERPROFILE%%\AppData\Local\Continuum\Anaconda3\Scripts\activate.bat

pushd是更改当前目录,%V是当前目录,而/K是运行命令。

因此不再需要修改后的cwp2.py。将以下内容放在.bat文件中并以管理员身份运行,将所需的密钥添加到注册表中(gist在评论中发布的Thibaud Ruelle的修改版本到另一个答案)

REG ADD HKCR\Directory\Background\shell\Anaconda\ /ve /f /d "Anaconda Prompt Here"
REG ADD HKCR\Directory\Background\shell\Anaconda\ /v Icon /f /t REG_EXPAND_SZ /d %%USERPROFILE%%\\Anaconda3\\Menu\\Iconleak-Atrous-Console.ico
REG ADD HKCR\Directory\Background\shell\Anaconda\command /f /ve /t REG_EXPAND_SZ /d "%windir%\System32\cmd.exe pushd "%V" "/K" %%USERPROFILE%%\Anaconda3\Scripts\activate.bat %%USERPROFILE%%\Anaconda3"
REG ADD HKCR\Directory\shell\Anaconda\ /ve /f /d "Anaconda Prompt Here"
REG ADD HKCR\Directory\shell\Anaconda\ /v Icon /f /t REG_EXPAND_SZ /d %%USERPROFILE%%\\Anaconda3\\Menu\\Iconleak-Atrous-Console.ico
REG ADD HKCR\Directory\shell\Anaconda\command /f /ve /t REG_EXPAND_SZ /d "%windir%\System32\cmd.exe pushd "%V" "/K" %%USERPROFILE%%\Anaconda3\Scripts\activate.bat %%USERPROFILE%%\Anaconda3"

5
投票

更新:answer by Filip S.可能会在更新版本的Anaconda上运行得更好。

另一个更新:我修复了在驱动器根目录中使用此启动器的问题(例如C:\D:\)。它非常小:在注册表项中添加了一些空格(相关部分:"%V "),因此尾部反斜杠不会混淆Windows。

原帖

我也想要这个功能,所以我做到了。关键步骤概述如下,进一步说明。

警告:除非您熟悉编辑注册表并使用非生产系统,否则请勿继续。显然,不要运行我告诉你的一切,检查它是不是做了任何邪恶的事情。你不认识我!

1. Modify the Anaconda script that sets the working directory

找到Anaconda脚本cwp.py(我的在C:\Users\bdforbes\Anaconda3\)并将其复制到同一目录中的cwp2.py

修改cwp2.py以接受目标路径作为第二个参数并更改为该目录:

prefix = sys.argv[1]
cwd = sys.argv[2]
args = sys.argv[3:]

... (PATH setting code)

(REMOVE OLD LOGIC THAT CALLED os.chdir)

os.chdir(cwd)
sys.exit(subprocess.call(args, env=env))

完整代码:https://gist.github.com/bdforbes/9ef59cd01c22acefc20c5c92bd9550ae

2. Add the registry keys

在注册表中,转到HKEY_CLASSES_ROOT\Directory\Background\shell\并添加一个密钥Anaconda,其默认值为“Open Anaconda Prompt Here”,其子密钥command具有以下默认值:

C:\Users\bdforbes\Anaconda3\pythonw.exe C:\Users\bdforbes\Anaconda3\cwp2.py C:\Users\bdforbes\Anaconda3 "%V " cmd.exe "/K" C:\Users\bdforbes\Anaconda3\Scripts\activate.bat C:\Users\bdforbes\Anaconda3

将相同的条目添加到HKEY_CLASSES_ROOT\Directory\shell\

我放了一个.reg file here,你只需要搜索替换bdforbes并将其替换为你的Windows帐户名。不先检查它就不要运行.reg文件!

enter image description here enter image description here

3. Use your fancy new context menu item

右键单击文件夹。你应该看到那里的新条目,它将让你打开一个新的Anaconda提示。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.