Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 我可以更改单个窗口的PATH变量吗?_Windows_Batch File_Environment Variables_Codeblocks - Fatal编程技术网

Windows 我可以更改单个窗口的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:

我正在尝试在没有管理员权限的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
代码::块打开,但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
不会打开一个窗口,在其中选择
环境变量…
按钮吗?