FOR /f %%p in ('where python') do SET PYTHONPATH=%%p
ECHO %PYTHONPATH%
setx
永久设置PATH
或PYTHONPATH
。setx path "%path%;C:\Users\Admin\AppData\Local\Programs\Python\PythonVersion;"
PATH
的脚本一样糟糕,因为它将注册表中的PATH
替换为具有所有环境变量展开的__local__ PATH
,并将__system__和__user__ PATH
连接起来,而不检查要添加的文件夹路径是否已存在于__user__或__system__ PATH
中。我只希望没有太多用户使用此PowerShell脚本,那些使用它的用户可能会遇到一些安装应用程序的问题。绝对不能使用__local__ PATH
更新__user__或__system__ PATH
。 - MofiFirst
示例存在几个问题。它应该规定令牌或分隔符,应该更具体地指定WHERE
要搜索的位置,应该规定扩展名,以防止匹配%PATHEXT%
中的任何扩展名,并且应该包含双引号。无论是否缺少双引号,上面的Second
示例在没有进一步信息/扩展的情况下完全没有意义。在我选择对您的答案进行负评之前,我会给您时间,@NoahM.,来解决这些问题,因为它只是链接到其他网站。 - CompoSET
命令只在cmd.exe
会话中本地有效。这意味着一旦你运行了其中任何一个示例,即使修复了问题,原帖的对话框也不会被改变/更新! - Compo
PATH
变量之前,所有这些路径都在现有的PATH
变量中。它们非常标准。 - SquashmanPython36
文件夹的路径添加到用户PATH
中?为什么不将路径写入位于"%APPDATA%\YourAppName\PythonPath.cfg"
的文件中,并从该文件中读取呢?或者,将 Python 路径添加到用户环境变量列表中,使用setx MyAppPythonPath "%CD%\Python36"
命令,然后你的程序或脚本就可以使用环境变量MyAppPythonPath
,而不依赖于本地PATH
和PATHEXT
。又或者,将 Python 路径添加到注册表键HKCU\Software\MyApp
,并将值设置为PythonPath
,然后从 Windows 注册表中查询该注册表值。 - Mofi