Windows 我可以更改单个窗口的PATH变量吗?
我正在尝试在没有管理员权限的Windows 7计算机上设置Code::Blocks。我已经安装了Code::Blocks和MinGW,但无法编辑用户或系统路径变量 我可以使用以下.bat文件打开一个命令行,其中包含对PATH变量所需的更改:Windows 我可以更改单个窗口的PATH变量吗?,windows,batch-file,environment-variables,codeblocks,Windows,Batch File,Environment Variables,Codeblocks,我正在尝试在没有管理员权限的Windows 7计算机上设置Code::Blocks。我已经安装了Code::Blocks和MinGW,但无法编辑用户或系统路径变量 我可以使用以下.bat文件打开一个命令行,其中包含对PATH变量所需的更改: SET PATH=%PATH%;c:\mingw\bin cmd SET PATH=%PATH%;c:\mingw\bin C:\CodeBlocks\codeblocks.exe 如果我尝试使用以下.bat文件以相同的方式打开Code::Blocks:
SET PATH=%PATH%;c:\mingw\bin
cmd
SET PATH=%PATH%;c:\mingw\bin
C:\CodeBlocks\codeblocks.exe
如果我尝试使用以下.bat文件以相同的方式打开Code::Blocks:
SET PATH=%PATH%;c:\mingw\bin
cmd
SET PATH=%PATH%;c:\mingw\bin
C:\CodeBlocks\codeblocks.exe
代码::块打开,但PATH变量未更改,因此无法编译
是否有任何方法可以更改单个应用程序的PATH变量?我更喜欢这个解决方案,因为它可以适用于其他情况
如果不可能,是否有任何方法可以添加到Code::Block设置中的搜索路径?您的
集
仅对当前cmd会话进行本地设置,它不会对环境变量%PATH%
进行永久更改。您可能需要查看SETX
,或者直接从GUI在环境变量中进行更改。如果运行codeblocks.exe启动IDE的新实例,它肯定会从批处理脚本继承环境变量更改。但是,如果它显示的是一个已经运行的IDE实例,那么显然它不会从批处理脚本继承环境。@Compo,程序从父进程获取环境,可以隐式或显式地作为CreateProcess
的lpEnvironment
参数传递。他们没有从注册表加载新的环境。setx.exe和控制面板环境变量编辑器向顶级窗口广播WM_SETTINGCHANGE
“environment”消息,但通常只有资源管理器重新加载其环境以响应此消息。如果您想确定,可以使用检查codeblocks.exe进程的路径
值。双击列表中的流程,然后单击对话框的“环境”选项卡。(它的UI不好。拖动列分隔符,直到它足够宽,可以看到整个值。)@izoughe,你是在告诉我进入下面的命令行,Control sysdm.cpl,,3
不会打开一个窗口来选择环境变量…
按钮?您的设置
仅对当前cmd会话是本地的,它不会对环境变量%PATH%
进行永久性更改。您可能需要查看SETX
,或者直接从GUI在环境变量中进行更改。如果运行codeblocks.exe启动IDE的新实例,它肯定会从批处理脚本继承环境变量更改。但是,如果它显示的是一个已经运行的IDE实例,那么显然它不会从批处理脚本继承环境。@Compo,程序从父进程获取环境,可以隐式或显式地作为CreateProcess
的lpEnvironment
参数传递。他们没有从注册表加载新的环境。setx.exe和控制面板环境变量编辑器向顶级窗口广播WM_SETTINGCHANGE
“environment”消息,但通常只有资源管理器重新加载其环境以响应此消息。如果您想确定,可以使用检查codeblocks.exe进程的路径
值。双击列表中的流程,然后单击对话框的“环境”选项卡。(它的UI不好。拖动列分隔符,直到它足够宽,可以看到整个值。)@Izouge,你是在告诉我,输入以下命令行,Control sysdm.cpl,,3
不会打开一个窗口,在其中选择环境变量…
按钮吗?