为什么其他文件夹路径也添加到使用SetX的系统PATH而不仅是指定的文件夹路径?我有一个批处理文件,我从C ++调用system("name.bat")。在该批处理文件中,我试图读取注册表项的值。从C ++调用批处理文件会导致set KEY_NAME=HKEY_LOCAL_MACHINE\stuff失败。但是,当我直接运行批处理文件(双击它)时,它运行正常。不确定我做错了什么。批处理文件:set KEY_NAME=HKEY_LOCAL_MACHINE\SOFTWARE\Ansoft\Designer\2014.0\Desktopset VALUE_NAME=InstallationDirectoryREG QUERY %KEY_NAME% /v %VALUE_NAME%C ++文件:int main(void){
system("CALL C:\\HFSS\\setup_vars.bat");
return 0;}更新1:我发现密钥实际上是在64位注册表中,而我正在构建一个32位的C ++解决方案。一旦我修复了它,它发现注册表键很好。现在我在将该路径添加到PATH变量时出现问题。它不是创建系统变量,而是创建用户变量PATH并将其添加到那里。从命令行运行。码:set KEY_NAME=HKLM\SOFTWARE\Ansoft\Designer\2014.0\Desktop\set VALUE_NAME=InstallationDirectoryFOR /F "usebackq skip=1 tokens=1,2*" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME%`) DO (
set ValueName=%%A
set ValueType=%%B
set ValueValue=%%C)if defined ValueName (
@echo Value Value = %ValueValue%) else (
@echo %KEY_NAME%\%VALUE_NAME% not found.):: Set PATH Variableset path_str=%PATH%set addPath=%ValueValue%;echo %addPath%echo %ValueValue%echo %PATH%| find /i "%addPath%">NULif NOT ERRORLEVEL 1 (
SETX PATH "%PATH%) else (
SETX PATH "%PATH%;%addPath%;" /M)更新2:我移动了选项/ M的位置,现在它正在添加到正确的PATH变量。但是,当我这样做时,它不止一次添加PATH(3次),然后它还添加了一个到visual studio amd64文件夹的路径。我很确定为什么会这样。
1 回答
- 1 回答
- 0 关注
- 722 浏览
添加回答
举报
0/150
提交
取消