如何在Windows资源管理器中设置文件关联?

如何在Windows资源管理器中设置文件关联?

我已经安装了顶篷Python 包,当我双击一个 Python 文件时,它会打开 Canopy 编辑器。我想单击文件来运行它,而不是编辑它。我已将文件属性更改为,Type of file: PY file (.py) / Opens with: python.exe但它不起作用。双击该文件会闪烁一个 cmd 窗口一瞬间,但不会运行该文件,大概是因为它启动 Python 时没有给它文件名。

注意:在 cmd 窗口中,python file.py可以正常运行该文件。并且assoc .py显示.py=Enthought.Canopy,而不是预期的.py=pyfile

笔记2:Windows 中的 Python 文件关联不起作用说要在文件上执行“按住 Shift 键并单击鼠标右键”,但是我没有得到比仅单击鼠标右键更好的选择。

属性窗口没有明显的方式告诉 Windows 使用 运行文件python.exe %s,我认为这是必需的。如何设置实际运行文件的文件关联?

答案1

在我的系统(安装了 Win7 x64、Anaconda2 和 Anaconda3)上,我需要修改

[HKEY_CLASSES_ROOT\py_auto_file\shell\open\command]

通过放置类似

"C:\Anaconda3\python.exe" "%1" %*

在默认条目中。

顺便说一句, %* 对于向 Python 脚本传递可选参数很有用。

答案2

新版本的 Windows 需要编辑注册表,因为文件关联控制面板不允许您指定参数传递。 一个来源建议在保存为“foo.reg”并由 Windows 打开的文本文件中使用它:

Windows 注册表编辑器版本 5.00

[HKEY_CLASSES_ROOT\Perl\shell\Open\command] @="\"C:\path\to\python.exe\" \"%1\" %*"

这应该会导致 Windows 将文件名传递给解释器。

来源:https://stackoverflow.com/questions/444388/how-can-i-pass-command-line-arguments-via-file-association-in-vista-64

答案3

如果你不想摆弄注册表,较新版本的 Windows 有一个替代方法:

控制面板:控制面板\程序\默认程序\设置关联

  • 程式
  • 默认程序
  • 设置关联

设置:Windows 10

  • 系统
  • 默认应用程序
  • 根据文件类型选择默认应用程序

在这两种情况下,找到 .PY 和 .PYW,并将其程序更改为python 执行文件或者pythonw.exe分别 (执行程序执行程序)。

这将自动设置可执行文件的路径,后跟您案例中缺少的部分:%1。此变量由您的文件的名称替换py(w)

答案4

启动命令提示符。

将正确的文件组与.py 脚本关联:

assoc .py=Python.File 将所有 Python 文件重定向到新的可执行文件:

ftype Python.File=C:\Path\to\pythonw.exe“%1”%*

相关内容