我问超级用户这个问题,并得到了它的风滚草徽章(10天13个意见),所以我想这里可能是正确的地方。
有几个版本的Python安装在我的Windows机器。 我希望能够在默认使用的版本之间轻松切换。
我尝试并使用winexplorer来更改与py文件关联的程序。 我将程序设置为用来打开这些文件作为写字板。 现在,当我在命令行input.py的文件名时,文件将在写字板中打开。
尽pipe如此,在命令行中键入以下内容将产生:
C:\>assoc .py .py=Python.File C:\>ftype Python.File Python.File="C:\Program\Python27\python.exe" "%1" %*
我不明白为什么命令行运行wordpad(如在Windows资源pipe理器中设置),虽然assoc和ftype说它应该运行Python27。
这些关联(命令行与资源pipe理器)存储在不同的地方? 哪一个覆盖哪一个,并设置与assoc和ftype的新关联覆盖在资源pipe理器中设置?
你会推荐做什么,以便能够轻松切换?
更多信息从我的registry中:
HKEY_CLASSES_ROOT.py是Python.File
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.py \ Application是wordpad.exe
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.py \ OpenWithProgids \ Python.File是长度为0的二进制值。
HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.py(标准)是Python.File
更多registry:
HKEY_CLASSES_ROOT \ Applications \ python.exe \ shell \ open \ command(Standard)仍然是“C:\ Program \ Python27 \ python.exe”“%1”%*
我想这是什么显示在ftype Python.File。 但它似乎并没有得到使用。
编辑以添加注册信息
Regedit说:
HKEY_CLASSES_ROOT\.py +--- (Standard) REG_SZ Python.File +--- Content Type REG_SZ text/plain
我试图改变Content Type
的值,没有效果。
也:
HKEY_CLASSES_ROOT\Python.File +--- shell (no data) +--- Edit with IDLE | +--- command | +--- (Standard) <path-to-idle> +--- open (no data) +--- command +--- (Standard) <path-to-python27>
我试图设置shell
的值open
,并open
到python27 exe的path的值,仍然无法正常工作。 不知怎的,命令提示符仍然可以find我在winexplorer中创build的关联,并使用wordpad打开文件,而不是在open
中使用该命令。
如果HKEY_CLASSES_ROOT\.py
是Python.File
则必须查看HKEY_CLASSES_ROOT\Python.File\shell
。 然后查找名称与其值相同的子项,例如,如果shell
项的值open
请转到HKEY_CLASSES_ROOT\Python.File\shell\open
。 这就是关联存储的地方。 如果shell
键没有值,请转到open
子项。
问题是,无论shell
键的值如何, ftype工具总是显示open
子键的内容。