jri*_*ker 12 windows contextmenu registrykey anaconda
我想在我的上下文菜单(Windows 7和10)上添加一个选项,当我右键单击该文件夹时,将Anaconda Prompt打开到文件位置,但我找不到正确的注册表项.
这是我所知道的怎么做:
我无法弄清楚的是如何将这些步骤组合到一个注册表项中,这样我就可以打开一个Anaconda Prompt然后在该提示符下cd到当前文件夹.但也许我正以错误的方式接近这一点.
来自互联网大师的帮助表示赞赏.
小智 21
HKEY_CLASSES_ROOT > Directory > Background > shell
AnacondaPrompt
并将其值设置为Anaconda Prompt Here
command
,并设置其值以将cmd.exe /K C:\Users\user\Anaconda3\Scripts\activate.bat
位置更改为 Anaconda 安装所在的位置。在最近的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)
更新:Filip S.的答案可能会在更新版本的Anaconda上更好.
另一个更新:我修复了在驱动器根目录中使用此启动器的问题(例如C:\
或D:\
).它非常小:在注册表项中添加了一些空格(相关部分"%V "
:),因此尾部反斜杠不会混淆Windows.
原帖
我也想要这个功能,所以我做到了.关键步骤概述如下,进一步说明.
警告:除非您熟悉编辑注册表并使用非生产系统,否则请勿继续.显然,不要运行我告诉你的一切,检查它是不是做了任何邪恶的事情.你不认识我!
找到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
在注册表中,转到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
先检查它就不要运行文件!
右键单击文件夹.你应该看到那里的新条目,它将让你打开一个新的Anaconda提示.