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

jri*_*ker 12 windows contextmenu registrykey anaconda

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

这是我所知道的怎么做:

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

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

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

小智 21

  1. 运行注册表编辑器 (regedit.exe)
  2. HKEY_CLASSES_ROOT > Directory > Background > shell
  3. 添加一个名为的键AnacondaPrompt并将其值设置为Anaconda Prompt Here
  4. 在该键下添加一个名为 的键command,并设置其值以将cmd.exe /K C:\Users\user\Anaconda3\Scripts\activate.bat位置更改为 Anaconda 安装所在的位置。


Fil*_* S. 8

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

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

cmd.exe /K %%USERPROFILE%%\AppData\Local\Continuum\Anaconda3\Scripts\activate.bat
Run Code Online (Sandbox Code Playgroud)

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

因此cwp2.py不再需要修改.把下面的内容中.BAT文件,并以管理员身份运行所需的密钥添加到注册表(在修改后的版本要点通过张贴蒂博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"
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,这个答案取决于Anaconda的安装位置(我很欣赏这一点,但我花了一些时间才弄明白).为此,我的两个`command` HKEY成为`C:\ WINDOWS\System32\cmd.exe pushd"%V""/ K""C:\ Program Files(x86)\ Microsoft Visual Studio\Shared\Anaconda3_64\Scripts\activate.bat""C:\ Program Files(x86)\ Microsoft Visual Studio\Shared\Anaconda3_64"`,图标位于"C:\\ Program Files(x86)\\ Microsoft Visual Studio \\ Shared \\ \\ Anaconda3_64菜单\\ Iconleak-Atrous-Console.ico"`.您可以通过检查Anaconda快捷方式的属性来找到它. (4认同)
  • Windows 10 + conda 4.7,以上代码不起作用。我们必须在 V 之前加倍“%”。否则其他一切都是一样的(除了可能将 Anaconda 路径更改为 activate.bat,具体取决于您的安装) (3认同)

bdf*_*bes 5

更新:Filip S.答案可能会在更新版本的Anaconda上更好.

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

原帖

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

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

1.修改设置工作目录的Anaconda脚本

找到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))
Run Code Online (Sandbox Code Playgroud)

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

2.添加注册表项

在注册表中,转到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
Run Code Online (Sandbox Code Playgroud)

添加相同的条目HKEY_CLASSES_ROOT\Directory\shell\.

我在.reg这里放了一个文件,你只需要搜索替换bdforbes并用你的Windows帐户名替换它..reg先检查它就不要运行文件!

在此输入图像描述 在此输入图像描述

3.使用您喜欢的新上下文菜单项

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

在此输入图像描述

  • 您可以运行.bat文件来避免替换用户名,而不是.reg文件.我将代码放在[this gist]中(https://gist.github.com/thibaudruelle/eac3a11fee9ea719de0240c9eda97d8f). (2认同)